系统环境:CentOS Linux release 7.4.1708 (Core)
Mysql版本:5.6.11
场景:新装的数据库,创建数据库,创建数据表后,插入中文数据报错
解决过程:
1、修改配置文件 my.cnf 添加以下三个
[mysqld] character_set_server = utf8 [mysql] default-character-set=utf8 [client] default-character-set=utf8
2、重启数据库,在命令行查看字符集是否更改为utf8
3、原来创建的数据库和数据表都需更改字符集
1)数据库更改字符集
alter database database_name default character set utf8;
2)查看数据库信息
show create database database_name;
3)数据表更改字符集
alter table table_name default character set utf8;
4)查看创建数据表信息
show create table student_message;
4、到这里为止,插入中文字符还是会报错,因为数据表的列的字符集没改变
1)还得把列的字符集更改过来
alter table table_name change filed_name filed_name char(10) character set utf8
2)全部改好后,可插入成功
总结:也就是说从库到表,从表到列的字符集都得改过来。