隨著資料增長,預設 /var/lib/mysql 所在分區常面臨空間不足。本文說明將 MySQL 資料目錄遷移至 /data/mysql 的完整步驟(以 Ubuntu/Debian 為例,CentOS/RHEL 路徑略有不同)。
mkdir -p /data/mysql cp -R /var/lib/mysql/* /data/mysql chown -R mysql:mysql /data/mysql
編輯 /etc/mysql/my.cnf(或 /etc/my.cnf),在 [mysqld] 區段修改:
datadir = /data/mysql
編輯 /etc/apparmor.d/usr.sbin.mysqld,將:
/var/lib/mysql r, /var/lib/mysql/** rwk,
改為:
/data/mysql r, /data/mysql/** rwk,
重啟 AppArmor:/etc/init.d/apparmor restart
/etc/init.d/mysql restart
# 匯出並壓縮 mysqldump -u root -p mysql | gzip > mysql.sql.gz # 解壓 gunzip mysql.sql.gz # 匯入 mysql -u root -p < mysql.sql # 或在 mysql client 中:source mysql.sql
tail -n 40 /var/log/syslog 或 journalctl -u mysql。/data/mysql 擁有者為 mysql:mysql。aa-status 檢查 mysqld 設定檔是否載入。完成遷移後,MySQL 即可使用大容量分區,避免 ibdata1 佔滿系統盤。