標籤:
ubuntu10.04下修改mysql的datadir的問題 轉自:http://blog.sina.com.cn/s/blog_4152a9f50100mq5i.html
昨天由於伺服器空間告緊,需要將mysql的datadir從預設的/var/lib/mysql移到/usr/local/mysql下,操作如下:
1.修改了/etc/mysql/my.cnf,改為:datadir = /usr/local/mysql
2.cp -a /var/lib/mysql /usr/local/
3./etc/init.d/mysql start
問題出現了,系統報錯了,無法啟動mysql,日誌顯示為:Can‘t find file: "./mysql/plugin.frm‘(errno:13)
[ERROR] Can‘t open the mysql.plugin table. Please run mysql_upgrade to create it.
但是執行mysql_upgrade時,同樣報錯。
在網上google一圈後,沒有找到解決辦法。
忽然想起,之前在調試mail server時,修改系統預設儲存目錄,需要修改系統的chroot參數,於是決定試下,後面事實證明就是這個原因。這裡把相關步驟記錄下,以備需要的朋友共用之。
修改系統的chroot,需要修改/etc/apparmor.d下的相關檔案,這裡以mysql為例,需要修改:usr.sbin.mysqld和abstractions/mysql兩個檔案。
1.修改usr.sbin.mysqld裡面的兩行內容:/var/lib/mysql/ r,改為:/usr/local/mysql/ r,/var/lib/mysql/** rwk,改為:/usr/local/mysql/** rwk,
2.修改abstractions/mysql中一行:/var/lib/mysql/mysql.sock rw,改為:/usr/local/mysql/mysql.sock rw,
3.重新載入apparmor服務:/etc/init.d/apparmor reload
這時再啟動mysql就成功了!
啟示:不只是mysql,如果需要修改其他一些系統內建軟體的儲存目錄,改了配置之後,仍然報錯的話,則可能需要修改相應chroot才行!請參照上面的方法!
ubuntu10.04下修改mysql的datadir的問題