資料庫遷移看似順利完成,但實際操作時卻發現只能讀取資料,無法寫入任何資訊,系統提示 #1036 - Table '*' is read only,表示資料表處於唯讀狀態。這通常是因為檔案系統權限設定不當或 MySQL 服務未正確重新載入表緩存所導致。
dedeadmin 為例)權限設為 777,並將擁有者改為 mysql 用戶與群組:chmod -R 0777 /usr/local/mysql/var/dedeadmin/
chown -R mysql:mysql /usr/local/mysql/var/dedeadmin/
mysqladmin 位置(通常在 /usr/local/mysql/bin/),執行以下指令並輸入 root 密碼:cd /usr/local/mysql/bin
./mysqladmin -u root -p flush-tables
執行成功後無任何提示,此時測試讀寫操作即可恢復正常。
/usr/local/mysql/var/xx)chown mysql.mysql *.*killall mysqld./mysqld_safe --user=mysql &將系統部署至伺服器後,存取特定資料表即出現 #1036 - Table ' ' is read only。即便將目錄權限改為 777 並調整擁有者為 mysql,問題依舊。最終透過執行 mysqladmin flush-tables 成功解決,遷移作業順利完成。
關鍵提醒:單純修改檔案權限不足以解決此錯誤,必須執行
flush-tables讓 MySQL 重新載入表元資料,才能真正解除唯讀狀態。