首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 啟動報錯「The server quit without updating PID file」排查實戰:權限與數據目錄遷移陷阱

     編輯:MySQL 綜合教學

環境與操作復現

  • OS:CentOS 6.4
  • 集成包:LNMP 1.0
  • 需求:將 MySQL 數據目錄從 /usr/local/mysql/var 遷移至 /data/mysql/var
  • 修改 /etc/my.cnf:datadir=/data/mysql/var
  • 執行 /root/lnmp restart → 报錯:Starting MySQL...The server quit without updating PID file [FAILED]

錯誤日志關鍵信息

140513 11:59:34 mysqld_safe Starting mysqld daemon with databases from /data/mysql/var
/usr/local/mysql/bin/mysqld: Table 'mysql.plugin' doesn't exist
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
...
InnoDB: The first specified data file /data/mysql/var/ibdata1 did not exist: a new database to be created!
...
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

核心原因分析

  1. 數據目錄遷移不完整:僅修改 datadir,未將原 /usr/local/mysql/var 下的 系統表(mysql.*)、InnoDB 系統表空間、Redo Log 複製到新目錄。
  2. 文件權限錯誤:新目錄文件屬主為 root:root,MySQL 進程以 mysql 用戶運行,無讀寫權限 → 無法創建/打開文件 → 啟動失敗。

標準遷移流程(避坑指南)

# 1. 停止服務
/etc/init.d/mysql stop

# 2. 複製整個數據目錄(保留權限、屬主)
cp -rp /usr/local/mysql/var /data/mysql/

# 3. 修改配置
# /etc/my.cnf
datadir=/data/mysql/var
socket=/data/mysql/var/mysql.sock
pid-file=/data/mysql/var/mysql.pid
log-error=/data/mysql/var/error.log

# 4. 確保權限正確(關鍵!)
chown -R mysql:mysql /data/mysql/var

# 5. 啟動驗證
/etc/init.d/mysql start

常見誤區與正確做法

誤區操作後果正確做法
只複製用戶表,不複製 mysql 系統庫缺失 plugin、host、user 等權限表 → Fatal error整目錄複製 cp -rp 或 rsync -a
修改 datadir 後未改 socket/pid-file 路徑客戶端連接失敗、PID 文件找不到同步修改 socket、pid-file、log-error 到新目錄
chown 只改目錄不遞歸改文件子文件仍屬 root → 權限拒絕chown -R mysql:mysql /data/mysql/var
直接啟動不看 error log盲目重試浪費時間tail -f /data/mysql/var/error.log 實時觀察

驗證清單

  1. ps aux | grep mysqld 確認進程存活。
  2. mysql -uroot -p -e "SHOW VARIABLES LIKE 'datadir'" 確認生效路徑。
  3. SHOW DATABASES; 確認系統庫與業務庫均可見。
  4. SELECT * FROM mysql.user LIMIT 1; 確認權限表可讀。

總結

「The server quit without updating PID file」絕大多數是「數據目錄遷移不完整」或「權限錯誤」的癥狀表現,而非 PID 文件本身問題。 遷移時務必整目錄複製、遞歸授權、同步修改所有路徑配置,並以 error.log 為唯一診斷依據。

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