從網上查找資料都說是要配置 sudo vi /etc/mysql/my.cn
,但是打開文件之后是這樣的:
Screenshot from 2017-02-14 13-10-25.png
原來的配置文件變成了包含目錄結構,于是在上面提到的兩個目錄里找找,很快就能找到配置文件原來是:/etc/mysql/mysql.conf.d/mysqld.cnf
用管理員權限編輯: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
,打開后時這樣的:
Screenshot from 2017-02-14 13-13-21.png
在[mysqld]下面添加:
character-set-server=utf8
而不是:
default-character-set=utf8
:wq保存后,重啟MySQL服務:
service mysql restart
在mysql的shell交互中輸入:
show variables like 'character%';
’
顯示如下:
Screenshot from 2017-02-14 13-21-01.png
但是還是無法插入中文。
mysql> insert into users values(88,'中文'); ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column 'username' at row 1
這時嘗試更改users表的username的字符集。
mysql> alter table users modify username char(20) character set gbk; ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'username' at row 1
因為表中已經有數據,所以更改username字符集的操作沒有成功
清空users表中的數據
清空表中數據:
mysql> truncate table users; Query OK, 3 rows affected (0.01 sec)
從新更改user表中username的字符集
mysql> alter table users modify username char(20) character set gbk;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
這時再插入中文字符,插入成功。
```
mysql> insert into users values(88,'中文');
Query OK, 1 row affected (0.01 sec)
mysql> select * from users;
+--------+----------+
| userid | username |
+--------+----------+
| 88 | 中文 |
+--------+----------+
1 row in set (0.00 sec)