在linux(debian)安装的mysql-server实例启动时的默认字符集是latin1。因此在创建数据库和表的默认编码也是latin1(除非显示指定character set),这样会导致部分客户端在读取包含中文的结果集时产生乱码。因此我们需要改变linux下mysql的默认编码(windows下的默认编码是gbk,一般不会有问题),主要有两种方法:
1.在创建数据库是显示指定编码:create database db1 character set utf8;
2.在/etc/my.cnf中的[mysqld]部分加入character-set-server=utf8,最后在[client]部分加入default-character-set=utf8。
注:网上部分帖子说在[mysqld]部分加入default-character-set=utf8是不可行的,至少在mysql5.5之后的版本是无法启动的,可以通过mysqld --verbose --help查看具体的参数信息,或者mysql在新的版本中将default-character-set换成了character-set-server,没研究过。
还可以在mysql连接上服务器实例后键入\s来查看当前默认编码,以确保当前编码符合你的要求。
1.在创建数据库是显示指定编码:create database db1 character set utf8;
2.在/etc/my.cnf中的[mysqld]部分加入character-set-server=utf8,最后在[client]部分加入default-character-set=utf8。
注:网上部分帖子说在[mysqld]部分加入default-character-set=utf8是不可行的,至少在mysql5.5之后的版本是无法启动的,可以通过mysqld --verbose --help查看具体的参数信息,或者mysql在新的版本中将default-character-set换成了character-set-server,没研究过。
还可以在mysql连接上服务器实例后键入\s来查看当前默认编码,以确保当前编码符合你的要求。