Linux

使用新掛載為 MySQL 創建更多空間

  • August 9, 2011

我正在使用雲 CentOS 5 實例,我意識到我一開始就離開了預設分區。/ 上的所有內容都已安裝在大約 10GB 的 hda 上。另一個驅動器 (sda) 大約有 90GB 用於備份,但如果需要,我可以釋放它。

我的 MySQL 數據庫現在越來越大,我正在考慮將其中一個 sda 驅動器安裝到 /var/lib/mysql 上。這是 mysql 的慣用做法(給它自己的分區)嗎?

我需要做些什麼來確保這一舉動是無痛的並且不會失去數據?伺服器是實時的,使用者讀寫數據庫,所以我想我會在深夜做,先關掉 mysqld。然後我打算將 /var/lib/mysql 中的所有內容移動到某個臨時目錄中,然後將 sda1 掛載到 /var/lib/mysql 上,然後將臨時目錄中的內容移回新掛載的 /var/lib/mysql目錄 這是正確的方法嗎?還有其他一些我沒有想到的給 MySQL 更多空間的方法嗎?

我很懷疑一個簡單的 mv 可能會錯過目錄中的一些隱藏文件(我為我對 mv 工作原理的無知表示歉意)。

這就是我所做的:

  1. 停止 MySQL 伺服器
  2. 掛載/dev/sda1/data(記得將其添加到/etc/fstab
  3. 創建目錄結構:

mkdir -p /data/var/lib 4. 將 MySQL datadir 移動到新文件夾:

mv /var/lib/mysql /data/var/lib/ 5. 更改所有者:

chown -R mysql:mysql /data/var/lib/mysql 6. 創建指向舊位置的符號連結:

ln -s /data/var/lib/mysql /var/lib/mysql 7. 打開 2 個控制台(我喜歡GNOME Terminator中的拆分功能)一個啟動 MySQL 伺服器,另一個啟動tail -f /var/log/mysqld.log.

這樣可以避免移動 datadir 兩次,您可以將/dev/sda1其用於其他目的。

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