本文是指在centos7上安装mysql5.7版本后出现中文乱码的解决方法。
mysql> show variables like 'chara%'; 查询之后有一项属性为 latin1,则进/etc/my.cnf的文件中,添加:[client]
default-character-set =utf8
[mysqld]
character-set-server=utf8
一般就可以ok了,如果还没好,可能出现的情况是在中文编码还没解决之前就创建了新的数据库,且新的数据库存了中文,没有指定编码。下面就是如何重新为数据库配置编码。
之后由于创建数据库时候:create database db_name; 没有指定编码,之后发现乱码就修改各个属性之后还是乱码,便开始配置数据库属性,之后信息如下:
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
发现character_set_database该属性设置utf8之后依旧还是Latin1 ,其实这个属性是数据库属性,在创建数据库时候如果不指定默认就是这个,因此对于创建的数据库可以修改数据库编码为utf8,修改脚本:
alter database <数据库名> character set utf8;
之后还是乱码,由于之前数据错误编码,所以设置utf8依旧乱码,删除数据重新导入即可。因此为了避免此问题,以后安装数据库首要任务就是配置编码,创建数据库时候指定编码:
CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;