在Debian系统上迁移MySQL数据库,常用方法及步骤如下:
备份源数据库
使用mysqldump工具导出数据(含结构和数据):
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql
(-p后直接跟密码,无需空格)
传输备份文件
通过scp将backup.sql复制到目标服务器:
scp backup.sql [目标服务器IP]:/目标路径/
恢复到目标数据库
utf8mb4):mysql -u [用户名] -p[密码] -e "CREATE DATABASE [新库名] CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u [用户名] -p[密码] [新库名] < /目标路径/backup.sql
停止源服务器MySQL服务
sudo systemctl stop mysql
备份数据目录
使用rsync或tar复制/var/lib/mysql目录(需排除临时文件):
sudo rsync -aAXv --exclude={"/dev/*","/proc/*"} /var/lib/mysql/ [目标服务器IP]:/var/lib/mysql/
调整目标服务器配置
/etc/mysql/my.cnf,确保datadir路径正确。启动服务并验证
sudo systemctl start mysql
mysql -u [用户名] -p[密码] -e "SHOW DATABASES;" # 检查数据库是否存在
sudo apt install percona-xtrabackup-24
sudo xtrabackup --backup --user=root --password=[密码] --target-dir=/backup/path
sudo xtrabackup --copy-back --target-dir=/backup/path --datadir=/var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mysql
scp -i 私钥),目标服务器MySQL用户权限正确。SHOW TABLES、SELECT COUNT(*)等命令验证数据完整性,执行业务功能测试。根据数据库规模和业务需求选择合适方案,优先在测试环境验证流程后再正式迁移。