1. 程式人生 > >mariadb設定各種預設編碼為utf8

mariadb設定各種預設編碼為utf8

1、登入MySQL,使用

SHOW VARIABLES LIKE 'character%

檢視當前使用的字符集,應該有好幾個不是UTF-8格式。

2、要修改的配置檔案位於 /etc/my.cnf.d目錄下:

# 編輯/etc/my.cnf
vim /etc/my.cnf

# 在[mysqld]標籤下新增下面內容
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

# 編輯/etc/my.cnf.d/client.cnf
vim /etc/my.cnf.d/client.cnf

# 在[client]標籤下新增下面內容
default-character-set=utf8

# 編輯/etc/my.cnf.d/mysql-clients.cnf
vim /etc/my.cnf.d/mysql-clients.cnf

# 在[mysql]標籤下新增下面內容
default-character-set=utf8

3、再次檢查編碼

SHOW VARIABLES LIKE 'character%
>show variables like 'character%'; 
+--------------------------+----------------------------+ 
| 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/ | +--------------------------+----------------------------+

說明:

  1. 已建的庫和表,編碼不會改變。如果在已有庫中繼續建表,表依然會繼承來自庫的過去使用的編碼
  2. 編碼解釋:
    character_set_client為客戶端編碼方式;
    character_set_connection為建立連線使用的編碼;character_set_database資料庫的編碼;
    character_set_results結果集的編碼;
    character_set_server資料庫伺服器的編碼;
    只要保證以上四個採用的編碼方式一樣,就不會出現亂碼問題。