Linux

在 Amazon EC2 機器上移動 MySQL 目錄

  • January 7, 2016

我試圖讓 MySQL 指向我安裝在我的 EC2 機器上的 EBS 卷上的目錄。

我採取了以下步驟:

  1. 已停止 MySQL ( /etc/init.d/mysqld stop) - 成功
  2. 在我的捲上創建了一個 MySQL 目錄,掛載在 /vol ( mkdir /vol/mysql)
  3. 將 /var/lib/mysql 的內容複製到 /vol/mysql ( cp -R /var/lib/mysql /vol/mysql)
  4. 更改了該目錄的所有者和組以匹配原始 ( chown -R mysql:mysql /vol/mysql) - 在此步驟之後,這 2 個目錄是相同的。
  5. 編輯 /etc/my.cnf 文件(註釋 2 條原始行):
[mysqld]
\#datadir=/var/lib/mysql
\#socket=/var/lib/mysql/mysql.sock
datadir=/vol/mysql
socket=/vol/mysql/mysql.sock
  1. 啟動 MySQL ( /etc/init.d/mysqld start) -失敗

錯誤文件 /var/log/mysqld.log 包含以下幾行:

100205 20:52:54  mysqld started  
100205 20:52:54  InnoDB: Started; log sequence number 0 43665  
100205 20:52:54 [Note] /usr/libexec/mysqld: ready for connections.  
Version: '5.0.45'  socket: '/vol/mysql/mysql.sock'  port: 3306  Source distribution  

沒有其他錯誤可用。

  1. 我究竟做錯了什麼?
  2. 我在哪裡可以找到 MySql 遇到的錯誤?
  3. 如果我恢復原始行,MySQL 就會啟動,這讓我相信這可能是一個權限問題——但是兩個目錄的權限是一樣的嗎?

謝謝!

我接受了 Garth 的建議並使用sh -x. mysql.sock我發現訪問文件時存在權限問題。所以我把舊的留在了 conf 文件中,再次執行它,ta-da 它可以工作並從新位置執行!

感謝 Gareth 給我指路。我在評論中給了你+1,但你沒有發布答案。

希望這個問題能幫助其他一些嘗試做同樣事情的人。

嘗試使用綁定掛載原始路徑。

安裝然後顯示:

/vol/etc/mysql on /etc/mysql type none (rw,bind)
/vol/lib/mysql on /var/lib/mysql type none (rw,bind)
/vol/log/mysql on /var/log/mysql type none (rw,bind)

並且配置文件仍然看起來像以前一樣:

socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql

引用自:https://serverfault.com/questions/110141