mysql 升级引起的乱码问题,今天终于解决了。。。。
在google baidu 搜索出来的结果,千篇一律,都一样。按照其说明升级,完了后依然是乱码。
这几天,自己研究了下mysql的 mysqldump和source这两个命令,终于解决了升级乱码问题。
好了,接下来说说我是怎么做的吧。
我的mysql是4.0要升级到5.0 。数据库名称是 bbs
首先,在服务中停止mysql4.0服务。然后安装5.0.
安装完成后,在mysql4.0的安装目录下的 data 目录中拷贝 bbs 目录 (也就是bbs数据库)到mysql5.0的data目录下。
然后我们在命令行模式下,进入mysql5.0的安装目录下的 bin 目录,输入
mysqldump -u root -p --default-character-set=latin1 bbs >c:\bbsBak.sql
在这句话中,--default-character-set=latin1 这是
mysqldump命令的一个参数,用来设置编码的。因为在4.0下,没有utf8编码的,默认是 latin1编码,所以,我们这里就设置为
latin1 了。 bbs 就是 bbs 数据库.c:\bbsBak.sql的意思是,把bbs数据库导出到C盘,存储为 bbsBak.sql 。
执行这句话后,提示输入密码,也就是 root 的密码。输入后,过一会儿,去C盘看看,是不是多了个 bbsBak.sql 的文件。
然后,我们打开这个文件(注意,最好用EditPlus或者其他可以选择编码的工具),将里面所有的 latin1替换为utf8, 再保存。
现在,我们再回到命令行模式,输入 mysqldump -u root -p 回车,输入正确的密码后,输入 drop database bbs; 也就是删除现有的bbs数据库。
再下来,我们需要再创建一个 bbs 数据库,创建的语句是这样的:create database bbs character set utf8;
character set utf8;是设置数据库默认编码是 utf8.
创建完成后,我们需要导入刚刚生成的 bbsBak.sql 。语句是这样的:source c:/bbsBak.sql
注意,这里是 / 不是 \
这样,就算大功告成了。。。。
如果有什么不明白的,留言给我。