mysql 字符集转换的问题,成功解决

搞了几天了,mysql字符集的问题终于解决了!

mysql字符集的问题,相信很多同仁们抖遇到过,并且不一定能很容易地解决。今天,我把成功的经验分享给大家。

问题描述:

由于历史遗留的问题,mysql数据库需要做调整。由于前一任同事的“简单操作”,把4.0的版本下的data文件夹直接复制到了5.0版本下,数据库表面上能正常运行与显示,但是还是遇到了字符集显示出错的问题,并且在4.1及以上的版本中,默认以latin1存储的数据,在搜索中文的一些字或者词组时会发生查询错误,因此我们需要将默认字符集转换为gbk或utf8。

在转换之前,在网上搜索了很多同类的文章,但是许多的文章都是采来采去的,没太大的意义,网上已经有的方法就不再说了。我只说我的转化过程。

首先,mysqldump -uroot -p --default-character-set=latin1 --tables database > old.sql

然后,修改old.sql中所有的 DEFAULT CHARSET=latin1 为 DEFAULT CHARSET=utf8 (你准备转换的编码),其他地方不用变动

最后导入,mysql -uroot  -p database<old.sql

一切OK,完成了LATIN1向UTF8的转换,我的数据库环境为MYSQL5.1,注意:数据的到处最好用MYSQLDUMP,这样导出的结果不容易出错。这种修改方法,不用修改整个数据库的编码,其他默认为LATIN1的仍然可以继续使用。