我設定了一個 EC2 實例,並嘗試將 MySQL 資料目錄移至已安裝的儲存體。
預設資料目錄是:
/opt/bitnami/mysql/data
我已將該目錄完全複製到
/mnt/mysql_data
然後我將 my.cnf 中的路徑更改為以下內容:
datadir=/mnt/mysql_data
並重命名舊目錄以確保我使用新目錄。
我已經在新目錄上向 MySQL 授予了適當的權限 - 但我什至不認為 MySQL 正在嘗試到達那裡。當我嘗試重新啟動 mysql 時,我收到有關先前資料目錄的錯誤:
sudo /opt/bitnami/ctlscript.sh start mysql
111122 18:50:50 mysqld_safe Logging to '/opt/bitnami/mysql/data/mysqld.log'.
touch: cannot touch `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
chown: cannot access `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
111122 18:50:50 mysqld_safe Starting mysqld.bin daemon with databases from /opt/bitnami/mysql/data
/opt/bitnami/mysql/bin/mysqld_safe: 739: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
eval: 1: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
111122 18:50:50 mysqld_safe mysqld from pid file /opt/bitnami/mysql/data/ip-10-120-253-190.pid ended
/opt/bitnami/mysql/bin/mysqld_safe: 783: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
我是否在某處遺漏了配置步驟?我見過其他有問題的人通過調整 apparmor 來解決它,但我什至沒有他們應該更改的文件“/etc/apparmor.d/usr.sbin.mysqld”。另外,我的問題似乎不是 mysql 無法存取新目錄 - 而是它仍在使用舊目錄。
答案1
事實證明,亞馬遜的控制腳本“/opt/bitnami/ctlscript.sh”正在執行位於/opt/bitnami/mysql/scripts/ctl.sh的mysql配置腳本
令人困擾的是,該腳本覆蓋了 my.cnf 檔案中的一些關鍵設定。在那裡更新它們可以解決問題。
答案2
您必須配置 mysql 以使用新的日誌目錄,請編輯 /etc/mysql/my.cnf (在本例中我使用的是 Debian)並更新
general_log_file = /mnt/data/log
祝你好運。