在Debian系統上進行MySQL數據遷移,可以采用多種方案。以下是一些常見的方法:
mysqldump
和 mysql
命令行工具這是最常用的方法,適用于大多數情況。
備份源數據庫:
mysqldump -u [用戶名] -p[密碼] [數據庫名] > backup.sql
注意:-p
和密碼之間沒有空格。
將備份文件傳輸到目標服務器:
可以使用 scp
或其他文件傳輸工具。
scp backup.sql user@target_server:/path/to/destination
在目標服務器上恢復數據庫:
mysql -u [用戶名] -p[密碼] [數據庫名] < /path/to/destination/backup.sql
xtrabackup
工具xtrabackup
是一個用于MySQL和MariaDB的熱備份工具,適用于大型數據庫。
在源服務器上安裝 xtrabackup
:
sudo apt-get update
sudo apt-get install percona-xtrabackup-24
準備備份:
xtrabackup --backup --user=[用戶名] --password=[密碼] --target-dir=/path/to/backup
將備份文件傳輸到目標服務器:
scp -r /path/to/backup user@target_server:/path/to/destination
在目標服務器上準備備份:
xtrabackup --prepare --target-dir=/path/to/destination
恢復數據庫:
xtrabackup --copy-back --target-dir=/path/to/destination --datadir=/var/lib/mysql
重啟MySQL服務:
sudo systemctl restart mysql
mysqlpump
工具mysqlpump
是 mysqldump
的并行版本,適用于大型數據庫。
備份源數據庫:
mysqlpump -u [用戶名] -p[密碼] [數據庫名] > backup.sql
將備份文件傳輸到目標服務器:
scp backup.sql user@target_server:/path/to/destination
在目標服務器上恢復數據庫:
mysql -u [用戶名] -p[密碼] [數據庫名] < /path/to/destination/backup.sql
LVM
或 rsync
進行物理遷移這種方法適用于需要在物理層面遷移數據庫的情況。
在源服務器上停止MySQL服務:
sudo systemctl stop mysql
使用 LVM
或 rsync
備份數據目錄:
sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /var/lib/mysql/ user@target_server:/var/lib/mysql/
在目標服務器上恢復數據目錄:
sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} user@source_server:/var/lib/mysql/ /var/lib/mysql/
修改目標服務器上的MySQL配置文件(如 /etc/mysql/my.cnf
),確保數據目錄路徑正確。
啟動MySQL服務:
sudo systemctl start mysql
xtrabackup
或物理遷移方法。希望這些方案能幫助你順利完成MySQL數據遷移。