问题: 由于MySQL编码原因会导致数据库出现乱码。 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。 具体操作: 1、进入MySQL控制台 mysql -uroot -p #输入密码进入 status; #查看当前MySQL运行状态,如下图所示:
系统运维 www.osyunwei.com 温馨提醒:系统运维原创内容©版权所有,转载请注明出处及原文链接 Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 默认客户端和服务器端都用了latin1编码,所以会出现乱码。 2、修改mysql配置文件 vi /etc/my.cnf #在[client]段增加下面代码 default-character-set=utf8 #在[mysqld]段增加下面的代码 default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci :wq! #保存退出
3、service mysqld restart #重启MySQL 再次进入MySQL控制台查看,如下图所示:
Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 show variables like 'character_set_%'; #查看MySQL字符集
MySQL数据库字符集编码修改完成! 参数说明: character_set_client:客户端请求数据的字符集。 character_set_connection:从客户端接收到数据,然后传输的字符集。 character_set_database: 默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库, 使character_set_server指定的字符集,此参数无需设置。 character_set_filesystem: 把操作系统上文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary即可。 character_set_results:结果集的字符集。 character_set_server:数据库服务器的默认字符集。 character_set_system:这个值总是utf8,不需要设置,存储系统元数据的字符集。 备注: MySQL 5.5之前的版本设置办法: 在[client]段下添加 default-character-set=utf8 在[mysqld]段下添加 default-character-set=utf8 注意,如果修改后不能启动报错,把[mysqld]段下default-character-set=utf8改为character_set_server=utf8,取消[client]段的设置。 创建数据库的命令: Create DATABASE IF NOT EXISTS mydata default charset utf8 COLLATE utf8_general_ci;
至此,修改MySQL数据库字符编码为UTF-8解决中文乱码教程完成。 |