2020-08-30
MACMYSQL

Mac MySQL client characterset 設定

Mac 編輯 my.cnf 設定檔,更改 MySQL 編碼設定。

MySQL Logo

不知道為什麼 某一次更新我的 Mac mysql client 之後,連進 mysql 的時候,預設編碼都會變成 latin1 ( 這其實是 mysql 最預設的編碼 )。

mysql> \s
--------------
mysql  Ver 8.0.19 for osx10.15 on x86_64 (Homebrew)

# --- 略過 ---

Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1

# --- 略過 ---

Threads: 7  Questions: 45  Slow queries: 0  Opens: 18  Flush tables: 1  Open tables: 12  Queries per second avg: 0.093
--------------

其中 Server characterset、Client characterset、Conn. characterset 這三個項目都是我預期之外的,我預期的是 utf8 才對。

怎麽解決呢?方法是修改 /etc/my.cnf 設定檔,加入以下設定:

[client]
default-character-set=utf8

這樣就好了。

mysql> \s
--------------
mysql  Ver 8.0.19 for osx10.15 on x86_64 (Homebrew)

# --- 略過 ---

Server characterset:    latin1 # 這個應該是 Server 本身的設定,在 Client 這邊修改是沒有用的唷!
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8

# --- 略過 ---

Threads: 7  Questions: 59  Slow queries: 0  Opens: 18  Flush tables: 1  Open tables: 12  Queries per second avg: 0.104
--------------

剛才上面有說,Server characterset 這個項目是 Server 端的設定,Client 端設定是無法改變的。那怎麽設定呢? 只要在 Server 端的 MySQL 服務,my.cnf 加入:

[mysqld]
character-set-server = utf8

這樣就設定完成了。