我是在ubuntu下使用得mysql.html
当执行下面语句的时候mysql
mysql>insert into role(code,name) values(200,'管理员');linux
出现错误 (ERROR 1366 (HY000))。web
查看Mysql默认字符集的相关设置:sql
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/ |数据库
若是出现上述状况则须要更改数据库编码:我用到的方法为:ubuntu
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/ |
+--------------------------+----------------------------+spa
可是此时再次执行插入命令仍旧出现上述错误,经查找发现:还要更改role表的name的字符集。.net
mysql>alter table tb_mgr_role modify name varchar(32) charset utf8
参考博文:
http://blog.csdn.net/webnoties/article/details/17219167