天天看點

mysql5.7中文亂碼問題

檢視目前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 字元集;

繼續閱讀