天天看点

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

    注意,这里是 / 不是 /

    这样,就算大功告成了。。。。

   如果有什么不明白的,留言给我。