多语言展示
当前在线:1787今日阅读:103今日分享:49

Mysql的乱码字符集修改方法

Mysql的乱码问题在开发过程中会经常遇到, 今天帮朋友导入在ubuntu的操作系统上搭建了一套lamp的运行环境, 然后导入别人给他设计好的数据库之后,查询的时候发现了乱码问题,所以把这次解决乱码的方法记录下来.
工具/原料

lamp 环境

方法/步骤
1

首先安装好mysql数据之后,为了三码统一修改mysql的默认的字符集(latin1)和校对规则为utf-8.      登录:                  mysql -u root -p密码       查看校对规则集:                  show variables like 'collation_%';       查看字符集:                    show variables like 'character_set_%';

2

其次找到mysql的配置文件my.cnf,ubuntu系统用agt-get intall 安装之后默认是在/et/mysql/my.cnf          命令:                  cd /etc/mysql/                  cp -p my.cnf my.cnf.default                  vim my.cnf            备注:                     分别在追加,然后保存                               [client]                               default-character-set=utf8                                [mysqld]                                character-set-server = utf8

3

重启mysql之后再次查看字符集和校对规则是否修改为utf-8            重启命令:                            service mysql restart

4

上面的查询发现现在存在乱码现象,接下来我们修复乱码,导出表结构,并把导出的文件的字符集修改为自己想要的字符集        命令:                  mysqldump -uroot -p --default-character-set=utf8 -d weipan > weipan_table.sql         备注:                 ----default-character-set=utf8 表示设置成什么字符集连接                 -d 表示只导出表结构,不导出数据

5

确保导出的时候数据不在更新,然后导出所有记录,并打开data.sqlb把原来的SET NAMES latin1修改为SET NAMES utf8         命令:                                 mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 weipan > data.sql          备注:                    --quick:该选项用于转储大的表.它强制mysqldump从服务器一次一行地检索表中的行而不是检索所有行,并在输出前将它缓存到内存中.                     --extended_insert:使用包括几个VALUES列表的多行INSERT语法,这样是转储文件更小,重载文件时可以加速插入.                     --no-create-info:不要重新创建每个转储表的CREATE TABLE 语句                    --default-character-set=latin1:按照原有的字符集导出所有数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码

6

连接数据库并创建数据库,然后导入表结构和表数据            命令:                   mysql -u root -p密码                   create database weipan2;                   \q;                    mysql -uroot -p weipan2 < weipan_table.sql                    mysql -uroot -p weipan2 < data.sql

7

最后登录数据库确认以前的乱码是否存在           命令:                   mysql -uroot -p密码;                   use weipan2;                   select * from w_user limit 3;

注意事项

修改字符集的时候记得是utf8而不是utf-8

推荐信息