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

MySQL 5.5 字符集報錯排查:開啟錯誤日誌定位 unknown variable 問題

     編輯:MySQL 資料庫相關知識

全新安裝 MySQL 5.5 後,沿用舊版 my.cnf 配置 default-character-set=utf8 導致服務啟動失敗。因未配置錯誤日誌,初期無從下手。本文演示「配置錯誤日誌 → 定位報錯 → 修正參數」的標準排查閉環。

步驟一:配置錯誤日誌讓錯誤可見

編輯 my.cnf 在 [mysqld] 區塊新增:

log-error=/var/log/mysql/error.log

確保目錄存在且 MySQL 進程有寫入權限:

mkdir -p /var/log/mysql
chown mysql:mysql /var/log/mysql

步驟二:查看錯誤日誌定位根因

[ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'

明確提示:服務端不識別該參數。

步驟三:查閱官方文檔確認參數更名

官方文檔 https://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_default-character-set 說明:
default-character-set 在 5.5 中已移除,服務端請使用 character-set-server。

步驟四:修正配置並驗證

# 修改 my.cnf
[mysqld]
character-set-server=utf8  # 替換 default-character-set=utf8

# 重啟服務
service mysql start

# 驗證
mysql> 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. 看日誌找關鍵字——ERROR、unknown variable、Can't open 等。
  3. 查官方文檔確認版本差異——參數名、預設值、廢棄特性隨版本變化。
  4. 最小化配置驗證——僅保留核心參數啟動,再逐項加入。

養成「不看日誌不排查」的肌肉記憶,版本升級遷移不再踩坑。

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