轉自:http://blog.csdn.net/fr555wlj/article/details/55668476
今天下午在學習MySQL時,向表中插入一條數據含有中文,結果報錯如下,
ERROR 1366 (HY000): Incorrect string value: ‘\xE8\xA2\x81\xE7\x92\x90…’
經過多次尋找度娘,大致明白了原因是編碼的問題。
進入MySQL終端,輸入show variables like 'character%';
顯示如下:
Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
加黑部分就是不能正常顯示的原因,需要將編碼格式更改為utf8格式,修改過程如下:
修改MySQL的配置文件
sudo vim /etc/mysql/conf.d/mysql.cnf
我修改之后的配置文件如下所示:
[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8
之后需要再重啟一下MySQL,即可成功。
service mysql restart
(如果沒有service命令,可以用sudo)
但是原有的數據庫還是不能插入中文,因為它們的編碼格式仍然不是utf8.
我將測試的數據庫刪除后重建了...