1. 程式人生 > >Mysql插入中文問題解決

Mysql插入中文問題解決

1.先擺一個參考資料

其中說的是修改my.cnf。我的機器是16.04Ubuntu,修改的具體檔案時mysqld.cnf。具體位置在/etc/mysql/mysql.conf.d/

//設定完之後的結果
+--------------------------+----------------------------+
| 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     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

2.設定表、欄位的編碼格式

摘抄其中非常有用的如下:

1.show variables like 'char%'; 檢視系統字符集設定,包括所有的字符集設定

2.show full columns from countries; 查看錶列的字符集設定,關鍵是在同一個表中,每列可以設定成不同的字符集

不同層級修改字元編碼格式

1.修改伺服器級

a. 臨時更改:

 mysql>SET GLOBAL character_set_server=utf8;

b. 永久更改: 修改my.ini檔案

 [mysqld]
 default-character-set=utf8

2.修改資料庫級

a. 臨時更改:

 mysql>SET GLOBAL character_set_database=utf8;

b. 永久更改: 改了伺服器級就可以了

3.修改表級

mysql>ALTER TABLE table_name DEFAULT CHARSET utf8; 更改了後永久生效

4.修改列級

修改示例:

 mysql>alter
table `products` change `products_model` `products_model` varchar( 20 )
 character set utf8 collate utf8_general_ci null default null;

更改了後永久生效

5.更改連線字符集

a. 臨時更改:

 mysql> set names utf8;

b. 永久更改: 修改my.ini檔案 在[client]中增加:

 default-character-set=utf8

執行SQL語句時資訊的路徑是這樣的 資訊輸入路徑:client →connection →server; 資訊輸出路徑:server→ connection → results.