1. 程式人生 > >Ubuntu下修改MySQL字符集

Ubuntu下修改MySQL字符集

MySQL預設字符集為latin,若要正確顯示中文,需要將字符集更改未utf8。修改字符集在ubuntu14和ubuntu16下略有不同。

Ubuntu14下修改MySQL字符集

編輯配置檔案my.cnf
$sudo vim /etc/mysql/my.cnf

[client] 
default-character-set=utf8 #增加這一行,指定字符集
port            = 3306 
socket          = /var/run/mysqld/mysqld.sock 

.............

[mysqld] 
character_set_server=utf8 #增加這一行,指定字符集
user = mysql pid-file = /var/run/mysqld/mysqld.pid

修改後,重啟服務即可。
sudo /etc/init.d/mysql restart
檢視字符集,所有的database的字符集應該就變成utf8了。
mysql> show variables like '%char%';

Ubuntu16下修改MySQL字符集

與Ubuntu14略有不同,主要是幾個檔案所在位置不同。修改方法如下:
1 修改mysql的配置檔案

sudo vim /etc/mysql/conf.d/mysql.cnf

在[mysql]的下方加入如下語句。(注:這個檔案下沒有配置,只有【mysql】)

no-auto-rehash default-character-set=utf8

/etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]下加入

socket = /var/run/mysqld/mysqld.sock port = 3306 character-set-server=utf8 (這裡是server,之前有的版本是set

重啟mysql:
sudo /etc/init.d/mysql restart

檢視字符集
mysql> show variables like '%char%';

如果出現某個表未改過來的情況則需要更改資料庫編碼:需要在
mysql下進行修改。有兩種方法, 第一種是一次搞定, 第二種只對當前連線有效,斷開連線,恢復更改前狀態。

方法1:
alter database 資料庫名 charset utf8
方法2:
set character_set_database = utf8