使用新掛載為 MySQL 創建更多空間
我正在使用雲 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 工作原理的無知表示歉意)。
這就是我所做的:
- 停止 MySQL 伺服器
- 掛載
/dev/sda1
到/data
(記得將其添加到/etc/fstab
)- 創建目錄結構:
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
其用於其他目的。