新版mysql插入中文会报错1366
原因:启动mysql:show variables like "character%";
显示如下:
mysql> show variables like "character%";
+--------------------------+------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\develop\Mysql\mysql-5.7.20-winx64\share\charsets\ |
+--------------------------+------------------------------------------------------+
database和server默认都是latin1,然而latin1不支持中文,所以报错1366
(1):windows下检查my.ini文件。
在[client]下为default-character-set=utf8
在[mysqld]下为character-set-server=utf8
然后重启服务可以解决。(我的my.ini并不需要修改。所以此方法我没有验证)
(2:):ALTER TABLE user(表名) CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
可以直接修改该表user的编码格式。
(3):使用mysql客户端navicat选中user表,设计表,可以手动选取为utf8格式进行更改,类似于方法2。