MySQL 啟動失敗,錯誤日誌顯示:
150326 10:44:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
/usr/local/mysql/bin/mysqld: File './mysql-bin.index' not found (Errcode: 13)
150326 10:44:50 [ERROR] Aborting
mysql-bin.index 實際存在於資料目錄,但 MySQL 進程(通常以 mysql 用戶運行)無法讀寫該目錄下的檔案。root 身分操作導致擁有者/群組變更為 root:root、權限為 700。# 遞歸將資料目錄擁有者改為 mysql 用戶與群組
chown -R mysql:mysql /usr/local/mysql/data
# 若二進制檔與配置也在 /usr/local/mysql 下,建議一併修正
chown -R mysql:mysql /usr/local/mysql
# 確認目錄權限至少為 750,檔案 640
chmod 750 /usr/local/mysql/data
find /usr/local/mysql/data -type f -exec chmod 640 {} \;
systemctl start mysqld
# 或
/etc/init.d/mysqld start
應輸出 Starting MySQL: [ OK ]。
rsync -a 保留屬性,或 cp -a。systemctl stop mysqld。ls -l /usr/local/mysql/data/ 確認擁有者為 mysql:mysql。mysqld 讀寫資料目錄。權限問題是 MySQL 遷移與升級中最常見的陷阱,養成「以服務用戶身分操作服務檔案」的習慣可避免 90% 此類故障。