全新安裝 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/ |
+--------------------------+----------------------------+
ERROR、unknown variable、Can't open 等。養成「不看日誌不排查」的肌肉記憶,版本升級遷移不再踩坑。