久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Ubuntu 10.04下如何解決修改MySQL的datadir的問題

144次閱讀
沒有評論

共計 2262 個字符,預計需要花費 6 分鐘才能閱讀完成。

行業資訊    
數據庫    
Ubuntu 10.04 下如何解決修改 MySQL 的 datadir 的問題

這篇文章主要介紹 Ubuntu 10.04 下如何解決修改 MySQL 的 datadir 的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

由于服務器空間告緊,需要將 Ubuntu 10.04 下 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 才行!請參照上面的方法!
關鍵就下面幾點:

  1. 找到 mysql 啟動時加載的 Option File(如果有多個,那么一定是起作用的那一個)。在我的機器上只有一個,是 /etc/mysql/my.cnf,進去把 datadir 一項的值改成自己指定的目錄。這個不難。

  2. 最關鍵的,把原先的數據目錄(默認是 /var/lib/mysql)里面的東西都轉移到新的目錄下,而且!一定!要保證相關的內容在新的目錄下仍然保持跟原來一樣的用戶和權限設置。用 chown 和 chmod 就能搞定,很簡單。但是如果這步出了差錯,找起來就麻煩了,重新啟動 mysql 的時候只會說連不上,很難發現真正的原因。我是通過 Ubuntu 下的 Package Manager 安裝的 MySQL,安裝之后相關文件和目錄的 user name 和 group name 都是“mysql”,所以新的 datadir 也要將 owner 設成 mysql,并確保它有合適的權限。

  3. 不僅要保證 datadir 的用戶 / 權限設置正確,如果 datadir 目錄比較深的話,好像跟上面幾級目錄的權限也有關系。總之,要保證用戶“mysql”能順利地訪問新的 datadir 的內容,而且要保證所有必要的內容都已被復制到新的 datadir 下面。在 MySQL 里面,像用戶記錄這種啟動時必需的信息也是以形式保存的,在啟動時會加載這些必需的 database,如果相關目錄的權限有問題,或者文件根本不存在,都會啟動失敗。

  4. 關于 AppArmor,網上資料說需要把所做的改動通過 profile 文件告訴它,否則 AppArmor 會阻止 mysql 訪問新的文件路徑而導致 mysql 不能運行。以我的經驗來看,好像沒感覺到 AppArmor 的影響。不過保險起見,還是按照網上說的,修改一下它的 profile 文件,在我的機器上是:/etc/apparmor.d/usr.sbin.mysqld,照著原先 datadir 有關內容的格式,新加幾行:

  /my/new/datadir/ r,
  /my/new/datadir/** rwk,

  5. AppArmor 和 mysql 都需要重啟。重啟的命令是:
 
  sudo /etc/init.d/{apparmor|mysql} stop
  sudo /etc/init.d/{apparmor|mysql} start

  或者用 service 命令也可以:

  sudo service {apparmor|mysql} stop
  sudo service {apparmor|mysql} start

—- TroubleShooting:

 mysql 的 Error log 文件,在我的機器上是:/var/log/mysql/error.log,如果出了問題,這里記錄的是真正的原因。對于終端里的幾行輸出不用太在意,基本上無論出什么事都只會說連不上 Server,沒什么用。

以上是“Ubuntu 10.04 下如何解決修改 MySQL 的 datadir 的問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計2262字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: SHOW| 和龙市| 安新县| 怀柔区| 开平市| 沙洋县| 都兰县| 修文县| 炎陵县| 三江| 舞钢市| 东台市| 九龙坡区| 明水县| 万州区| 临猗县| 萍乡市| 堆龙德庆县| 涿鹿县| 闸北区| 龙川县| 河北区| 新河县| 宝应县| 卢龙县| 古交市| 枣强县| 镇巴县| 井陉县| 察隅县| 隆子县| 清新县| 临沭县| 平遥县| 渭南市| 嫩江县| 瑞丽市| 应用必备| 綦江县| 宁河县| 金堂县|