首先進入MySQL查看當前默認編碼:mysql
mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+-----------------------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /rdsdbbin/oscar-5.6.10a.16.21/share/charsets/ | +--------------------------+-----------------------------------------------+ 8 rows in set (0.02 sec)
可以看到大部分都是latin1
,如今想把默認編碼改爲uft8
sql
能夠直接執行set
命令:數據庫
SET character_set_client = utf8; SET character_set_connection = utf8; SET character_set_database = utf8; SET character_set_results = utf8; SET character_set_server = utf8;
而後 mysql> SHOW VARIABLES LIKE 'character%';
能夠看到全變爲utf8
可是,這只是一種假象。此種方式只在當前狀態下有效,當重啓數據庫服務後失效。windows
因此想要不出現亂碼只有修改MySQL配置文件my.cnf
(windows下my.ini
)。
找到配置文件(Linux下通常是/etc/my.cnf
)
打開文件,標籤下沒有的要添加,有的就修改:編碼
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8
從新鏈接數據庫,再作查詢:code
mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+-----------------------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /rdsdbbin/oscar-5.6.10a.16.21/share/charsets/ | +--------------------------+-----------------------------------------------+