Mysql插入中文問題解決
阿新 • • 發佈:2018-12-20
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.