Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

MySQL 資料目錄遷移完整教學:將 datadir 從 /var/lib/mysql 移至大分區

編輯:Linux 教學

隨著資料增長,預設 /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

二、修改 MySQL 設定檔

編輯 /etc/mysql/my.cnf(或 /etc/my.cnf),在 [mysqld] 區段修改:

datadir = /data/mysql

三、修改 AppArmor 規則(Ubuntu/Debian 必須)

編輯 /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

四、重啟 MySQL 服務

/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。
  • AppArmor 拒絕:aa-status 檢查 mysqld 設定檔是否載入。

完成遷移後,MySQL 即可使用大容量分區,避免 ibdata1 佔滿系統盤。

Copyright © Windows教程網 All Rights Reserved