mysql数据库现在已经发布了8.0.x版本了。现在的字符集使用的是utf8mb4.如果你在控制台创建数据库以及表,那么字符集默认就是utf8,而且插入中文是没问题的.
但是现在很多数据库的版本还是5.7.x。有的人在创建了数据库和表后发现插入数据的时候会报错,如下
mysql> INSERT INTO t_stu VALUES(1,'张三','男');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname' at row 1
此时查看编码的命令为
show variables like 'character_%';
show variables like 'collation_%';
会看到显示的字符集是latin1
那么如何修改字符集呢?
关掉mysql服务
找到你安装mysql后的数据目录下的my.ini配置文件,添加如下几行代码即可
[mysql] #大概在63行左右,在其下添加
...
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_ci
注意:建议修改配置文件使用notepad++等高级文本编辑器,使用记事本等软件打开修改后可能会导致文件编码修改为“含BOM头”的编码,从而服务重启失败。
重启服务即可
如果是在修改my.ini之前建的库和表,那么库和表的编码还是原来的Latin1,要么删了重建,要么使用alter语句修改编码。