首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Mac MySQL 中文亂碼徹底解決:從配置文件到驗證的完整流程

     編輯:MySQL 資料庫相關知識

一、 問題現象與根因

Java SSH 框架已配置 CharacterEncodingFilter (UTF-8),參數傳入正常,但數據庫存儲仍亂碼。根因:Mac 版 MySQL 默認字符集非 UTF-8,需修改配置文件強制指定。

二、 診斷當前編碼狀態

-- 查看實例級字符集變量
SHOW VARIABLES LIKE '%char%';
-- 查看具體庫編碼
SHOW CREATE DATABASE test;

若顯示 latin1 或 gbk,確認需修改。

三、 修改配置文件步驟(Mac 官方 pkg 安裝路徑)

1. 進入支持文件目錄並複製默認配置

sudo -s
cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf

2. 編輯 /etc/my.cnf

cd /etc
vim my.cnf

在 [client] 區塊末尾添加(5.5+ 版本此處無效,但保留兼容):

default-character-set=utf8

在 [mysqld] 區塊末尾添加核心三項:

default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

💡 MySQL 5.5+ 不再支持 [mysqld] 下的 default-character-set,必須用 character-set-server。

3. 保存並重啟服務

# ESC → :wq 保存退出
# 重啟方式(視安裝方式):
# 1. 系統偏好設置 → MySQL → Stop/Start
# 2. 或命令行
sudo /usr/local/mysql/support-files/mysql.server restart

四、 驗證修改生效

SHOW VARIABLES LIKE '%char%';
-- 期望輸出關鍵變量均為 utf8 / utf8_general_ci
character_set_server=utf8
collation_server=utf8_general_ci
character_set_database=utf8

再次執行中文寫入測試,亂碼問題解決。

五、 進階:推薦升級 utf8mb4

utf8 實為 utf8mb3,不支援 Emoji 及罕見漢字。生產環境建議:

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

並確保連接層(JDBC URL、框架配置)同步指定 characterEncoding=utf8mb4。

六、 總結

Mac MySQL 中文亂碼核心在 /etc/my.cnf 缺失服務端字符集聲明。按本文步驟補全 [mysqld] 三項配置並重啟,即可徹底解決。新項目請直接採用 utf8mb4 避免未來升級成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved