在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数据迁移。