CentOS 7修改MySQL 5.6字符集为UTF-8

时间:2022-09-08 10:08:20

MySQL编码原因会导致数据库出现中文乱码

解决办法:

修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。

具体操作:

1、进入MySQL控制台

mysql -h localhost -P 3306 -u root -p #输入密码进入

status; #查看当前MySQL运行状态,如下图所示:

CentOS 7修改MySQL 5.6字符集为UTF-8

Server characterset: latin1

Db characterset: latin1

Client characterset: latin1

Conn. characterset: latin1

这表明:默认客户端和服务器端都用了latin1编码,所以会出现乱码。

此时再在命令行输入:show variables like 'character_set%'; #查看MySQL字符集

CentOS 7修改MySQL 5.6字符集为UTF-8

2、修改mysql配置文件

vi /etc/my.cnf #根据个人配置找到相应文件

#在[client]段增加下面代码

default-character-set=utf8

#在[mysqld]段增加下面的代码

#default-storage-engine=INNODB #置默认存储引擎为InnoDB,此处可不必添加

character-set-server=utf8

collation-server=utf8_general_ci

:wq! #保存退出

3、systemctl restart mysql.service #重启MySQL

再次进入MySQL控制台查看,如下图所示:

CentOS 7修改MySQL 5.6字符集为UTF-8

Server characterset: utf8

Db characterset: utf8

Client characterset: utf8

Conn. characterset: utf8

命令行输入:show variables like 'character_set%'; #查看MySQL字符集

CentOS 7修改MySQL 5.6字符集为UTF-8

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;

.........................................................................................................................................................................

摘取自系统运维(www.osyunwei.com),原文链接:修改MySQL数据库字符编码为UTF-8解决中文乱码