我是在ubuntu下使用得mysql.
当执行下面语句的时候
mysql>insert into role(code,name) values(200,'管理员');
出现错误 (ERROR 1366 (HY000))。
查看Mysql默认字符集的相关设置:
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------+
| Variable_name| Value|
+--------------------------+---------------------------------+
| character_set_client| latin1|
| character_set_connection | latin1|
| character_set_database | latin1|
| character_set_filesystem | binary|
| character_set_results| latin1|
| character_set_server| latin1|
| character_set_system| utf8|
| character_sets_dir|/usr/share/mysql/charsets/|
如果出现上述情况则需要更改数据库编码:我用到的方法为:
mysql> alter database 数据库名 charset utf8;
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
但是此时再次执行插入命令仍旧出现上述错误,经查找发现:还要更改role表的name的字符集。
mysql>alter table tb_mgr_role modify name varchar(32) charset utf8
参考博文: