解决mysql不支持中文([HY000][1366] Incorrect string value ‘xE5xBCxA0xE4xB8x89‘ for column ‘xxxxx‘ at row 1)

解决mysql不支持中文([HY000][1366] Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'xxxxx' at row 1)

  
  

本教程环境:

Ubuntu20.04(server版) + mysql5.7

  
  

报错内容:

mysql> insert into XXX values ('张三');

ERROR 1366 (HY000): Incorrect string value: ‘\xE5\xB0\x8F\xE6\x98\x8E’ for column ‘XXX’ at row 1

  
  

验证错误情况:

  • 登录MySQL数据库,通过show variables like 'character%'; 查看编码格式

在这里插入图片描述

如果显示的内容与此图一样,则可通过本教程解决该错误

  
  

解决方案:

  • sudo vim /etc/mysql/conf.d/mysql.cnf
[mysql]的下方加入如下语句:(注:这个文件下没有配置,只有【mysql】)

no-auto-rehash
default-character-set=utf8

在这里插入图片描述

  • sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]下加入

socket = /var/run/mysqld/mysqld.sock
port = 3306
character-set-server=utf8 

在这里插入图片描述

  • sudo /etc/init.d/mysql restart 重启MySQL

  
  

验证是否解决问题:

  • 登录MySQL数据库,通过show variables like 'character%'; 查看编码格式

在这里插入图片描述

大功告成~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注意:此时再新建的数据库就可以支持中文格式了,但是之前已建好的库可能还是不支持