mysqldump迁移编码不同的数据库
Sunday, December 26th, 2010 Posted in Linux, MySQL | No Comments »来源:http://hi.baidu.com/seaweaver/blog/item/fbd9a8ec933c532562d09f5c.html 第一步,导出旧库 mysqldump --default-character-set latin1 -uroot -pXXX --database db > /tmp/old.sql 第二步,转换编码 iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql 第三步,导入新库 修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存。 mysql -hlocalhost -uroot db < new.sql 这次进行论坛迁移时,这个小blog居然一再出现乱码,实在是让小可我实在是汗顏。 进行深入分析时,发现dump出来的文件里面就已经是乱码了。用file进行分析时,发现文件已经是UTF8。 最后仔细想想新旧服务器之间的区别,可能只有mysql server字符集的区别。老服务器用的是默认的latin1,而新服务器我们改成了utf8。 在笔记本的ubuntu上装了个mysql,把sql文件导入,select了一下,发现数据居然是正常了的。 这样子问题就很明显了,马上在笔记本上执行 mysqldump --default-character-set=latin1 -uroot -p123456 myhnet > myhnet.sql 再用cat看了一个myhnet.sql的内容,里面的中文已经是正常了。 用vi打开文件,把里面所有的latin1替换成utf8,上传到服务器,再导入,果然一切正常了~~~~