升級或全新安裝 MySQL 時,mysql_install_db 初始化系統表常因主機名解析、字元集檔案路徑、權限等問題報錯。本文記錄實際遇到的幾個典型錯誤及修復步驟,供後續排查參考。
Neither host 'localhost.localdomain' nor 'localhost' could be looked up with /resolveip
Please configure the 'hostname' command to return a correct hostname.
系統 /etc/hosts 缺少 localhost 對應條目,導致 MySQL 無法解析本地主機名。
/etc/hosts,確保包含:127.0.0.1 localhost.localdomain localhostscripts/mysql_install_db。--force 強制執行:scripts/mysql_install_db --forceerrmsg.sys[ERROR] Can't find messagefile '/usr/local/MySQL/share/english/errmsg.sys'
[ERROR] Aborting
Installation of system tables failed!
MySQL 5.1 早期版本(Bug #30678)中 mysql_install_db 尋找 share/english/errmsg.sys 路徑錯誤,實際檔案在 share/mysql/english/ 下。
ln -s /usr/local/mysql/share/mysql/english /usr/local/MySQL/share/english
scripts/mysql_install_db --force
官方已在 5.1.22 修復此 Bug,建議升級至較新版本。
mysqldumpslow 無法判斷 basedirCan't determine basedir from 'my_print_defaults mysqld' output: --max-allowed-packet=100M
將 MySQL bin 目錄加入 PATH 環境變數:
export PATH=$PATH:/usr/local/MySQL/bin
初始化成功後,以安全模式啟動:
/usr/local/mysql/bin/mysqld_safe &
ps aux | grep mysql
確認 mysqld 進程以 --datadir、--socket、--port=3306 正常運行即可。
/etc/hosts 主機名解析。errmsg.sys 找不到,建立軟連結指向正確 share/mysql/english 目錄。PATH 未包含 bin 目錄。