Bob SpAce

Be myself!Do myself!

Category: Mysql

使用sql语句批量替换数据库内容的方法

Update 表名 SET 字段名=replace(字段名,'原内容','新内容')

如何关闭MySQL日志,删除mysql-bin.0000*日志文件

mysql-bin.0000* 这些是mysql运行过程中的操作日志。

保留的话:当你数据丢失可用来恢复数据,当你需要主从复制时需要靠这些文件。
不保留的话:节省空间,加快mysql速度。

关闭办法:
找到my.cnf或者my.ini文件,把 “ log-bin= ” 这个参数用#号注释掉,然后重启mysql就可以。

折中办法:
在my.cnf或者my.ini文件中,log-bin参数后面,加入expire_logs_days=15。意思就是日志保留15天。然后重启mysql就可以。

linux中,是my.cnf。windows中,是my.ini。怎么取舍,你看着来吧。

下面是一种实现方式,仅仅筛选出 www.xxx.com/upload/、www.xxx.com/news/333.html 之类的网址:

UPDATE `test_table` SET `body`=REPLACE(`body`, 'www.xxx.com', 'test.xxx.com') WHERE `body` REGEXP 'www\.xxx\.com/[a-zA-Z]+'

mysql导入大数据库文件方法2008/09/16 09:45运行->cmd

mysql -uroot -p密码 –default-character-set=编码 数据库名 <文件地址(比如D:\web\itfly.com.sql)

如果是数据库的默认字符集和你的数据相同 可以忽略 –default-character-set=编码 也可以在sql文件的开始 加上 set names ‘gbk’; 这样的命令.
在 PHPMyAdmin 导出数据库文件,有80MB之多的*.sql,用phpMyadmin导入大SQL文件的时候老出现错误,SQL文件通过phpMysql导入到数据库总是出现找不到服务器,要不就是自动终止了~~.
像这样的大文件通过什么方法导入到数据库比较好?如何导入? 还是在 PHPMyAdmin 导入吗?这么大的一个文件能导入吗?望朋友们帮我回答一下,谢谢!

解决方案:突然想到可以用crontab来运行命令呀(cron jobs的设置,美国月付空间提供的空间支持比较好,支持这些功能)。测试一下成功了。
1. 通过ftp上传你的备份sql文件,放在根目录下就可以了。
2. 进入你的cPanel, 看到cron jobs 这个图标,点击进去,然后选Advanced (Unix Style) (呵呵我比较习惯unix哈)。
因为只需要运行一次,所以Minute, Hour, Day, Month 都填入准备运行的具体时间,留两分钟余量就行(如果虚拟主机不在本地,可以在FTP上查看一下主机时间), Weekday填*号算了。
Command 填待运行的命令,就是导入命令:mysql -u 用户名 -p口令 [-h 数据库主机] 数据库 < 数据库备份.sql假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。
则键入以下命令:mysql -h10.0.0.1 -uroot -p123(注:u与root可以不用加空格,其它也一样)
例如,美国月付空间的设置如下:mysql -ujia_jia -pjia -hlocalhost jia_jia < /home/你的cpanel用户名/public_html/jia.sql3.在phpMyAdmin里监视导入情况。
速度很快,我1G的数据库也就十几分钟吧。另外在导入数据时,如果目标数据库或表是UTF-8字符集的,而导入SQL中有中文,可能在最终结果中出现乱码,此时只需在导入的SQL文件第一行加入如下内容即可。
/*!40101 SET NAMES utf8 */;也可以将SQL文件另存为UTF-8 NO BOM格式,然后进行导入。这样就不会出现乱码了。

Powered by WordPress & Theme by Anders Norén