1. 程式人生 > 其它 >Linux/windows下MySQL中文亂碼、變問號???-解決

Linux/windows下MySQL中文亂碼、變問號???-解決

一、檢視自己資料庫當前編碼

show variables like '%character%';

1.說明:

character_set_client:客戶端請求資料的字符集

character_set_connection:客戶機與伺服器連線的字符集

character_set_database:預設資料庫的字符集;如果沒有預設資料庫,就會使用 character_set_server指定的字符集(建議不要隨意更改)

character_set_filesystem:把 character_set_client轉換character_set_filesystem (預設為binary, 不做任何轉換)

character_set_results:返回給客戶端的字符集

character_set_server:資料庫伺服器的預設字符集

character_set_system:系統字符集,預設utf8。(用於資料庫的表、列和儲存在目錄表中函式的名字)

character_sets_dir:mysql字符集檔案的儲存路徑

2.解決亂碼設定:

如果自己的下面三項不為utf8可做如下處理

set character_set_client = ‘utf8’;
set character_set_connection = ‘utf8’;
set character_set_results = ‘utf8’;

set names utf8;    //相當於上面三句

重啟後如果還沒解決問題,則進行如下配置......

二、在mysql的my.cnf的配置檔案中修改或新增下列(此檔案一般位置:/etc/my.cnf,以自己實際為主:/etc/xxxx/my.cnf):

1.有的版本沒有此檔案,需要自己建立一個。可查詢一個xxx.cnf 檔案,一般在/usr/share/....下,然後複製到etc資料夾下重新命名為my.cnf:

2.沒有my.cnf一般將/usr/share/mysql/my-default.cnf檔案複製來使用。5.7.18開始官方二進位制包中不再提供my-default.cnf檔案,直接修改人家提供的替代檔案/etc/mysql/mysql.conf.d就可以了,實在不行自己寫一個或者找別人複製個自己修改。

3.windows下在 MySQL 的安裝目錄下有一個my.ini配置檔案,通過修改這個配置檔案可以解決亂碼問題,如果已經是utf8可修改為GBK解決問題。

[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqld]
character_set_server = utf8

然後重啟資料庫即可.........

重要說明:修改後對現有的資料庫表是不起作用滴,對新建的才管用~~