檢視目前mysql使用的字元集
show variables like 'character%';
結果解釋:
character_set_client:用戶端請求資料的字元集
character_set_connection:用戶端與伺服器連接配接的字元集
character_set_database:資料庫伺服器中某個庫使用的字元集設定,如果建庫時沒有指明,将預設使用配置上的字元集
character_set_results:傳回給用戶端的字元集(從資料庫讀取到的資料是什麼編碼的)
character_set_server:為伺服器安裝時指定的預設字元集設定。
character_set_system:系統字元集(修改不了的,就是utf8)
character_sets_dir:mysql字元集檔案的儲存路徑
當資料庫是utf8字元集,用戶端是gbk造成中文亂碼時解決方法:(其他字元集問題類推)
臨時:set names gbk (會将character_set_client,character_set_connection,character_set_results臨時修改為gbk)
永久:修改配置檔案my.cnf中(如果配置檔案中沒有可以手動添加)
[client]
default-character-set=gbk
作用于外部的顯示(隻是想解決顯示亂碼,修改這個就行)
[mysqld]
character_set_server=gbk
作用于内部,會作用于建立庫表時預設字元集(一般建議不要修改)
修改資料庫字元集sql指令:
alter database dbname default character set 字元集;
修改資料表字元集sql指令:
alter table tbname default character set 字元集;