将生产库的数据连同表结构一起复制到测试库中
✅ 方法一:使用 mysqldump 工具(推荐)
这种方式可以完整复制数据库结构和数据,非常可靠。
1. 从生产库导出数据和表结构
在终端执行:
mysqldump -h 生产库地址 -u 用户名 -p 数据库名 > prod_backup.sql
例子:
mysqldump -h 192.168.10.100 -u root -p my_database > prod_backup.sql
它会导出整个数据库的建表语句和数据。
2. 将 SQL 文件导入测试库
你可以登录测试库所在的服务器,然后执行:
mysql -h 测试库地址 -u 用户名 -p 测试库名 < prod_backup.sql
例子:
mysql -h 127.0.0.1 -u root -p test_database < prod_backup.sql
如果 test_database 不存在,你可以先建一个:
CREATE DATABASE test_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
✅ 方法二:Navicat 或 DBeaver 工具导入导出
如果你使用的是图形化工具如 Navicat、DBeaver,可以这样操作:
1.在生产库上右键 -> 导出 SQL 文件(包含结构和数据)
2.在测试库中新建数据库(如果没有)
3.执行导入 SQL 文件
✅ 方法三:Django 项目中操作(不推荐批量数据复制)
如果你用的是 Django 项目,想用脚本做也可以,但不适合用于大量数据和结构同步,一般只用于小量表数据。
注意事项
操作前备份测试库(以防误操作)
确认测试库与生产库的 MySQL 版本兼容
确保目标数据库用户有建表和写入权限
下面是我的实操
我的生产库和测试库都在同一台服务器上(192.168.10.205),只是端口号不同,使用的都是 MySQL。
✅ 第一步:从"生产库(3307)"导出结构+数据
在终端运行以下命令导出整个 xss 数据库(表结构 + 数据)为一个 SQL 文件:
mysqldump -h 192.168.10.205 -P 3307 -u root -p'数据库连接密码' xss > /tmp/xss_prod_backup.sql
说明:
-P 3307 指定生产库的端口;
注意密码前不要加空格;
/tmp/xss_prod_backup.sql 是备份文件路径,你也可以改成其它路径;
✅ 第二步:将 SQL 文件导入到"测试库(3306)"
确保测试库的 xss 数据库存在。如果没有,先执行:
mysql -h 192.168.10.205 -P 3306 -u root -p'测试库密码' -e "CREATE DATABASE IF NOT EXISTS xss DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
然后执行导入命令:
mysql -h 192.168.10.205 -P 3306 -u root -p'测试库密码' xss < /tmp/xss_prod_backup.sql
✅ 第三步:验证测试库数据
登录测试库查看:
mysql -h 192.168.10.205 -P 3306 -u root -p'测试库密码'
USE xss;
SHOW TABLES;
🔁 一键执行脚本(如果你想快速完成)
可以将下面内容保存成一个 .sh 文件执行,例如:sync_xss_db.sh
#!/bin/bashecho "导出生产库..."
mysqldump -h 192.168.10.205 -P 3307 -u root -p'生产库密码' xss > /tmp/xss_prod_backup.sqlecho "创建测试库(如不存在)..."
mysql -h 192.168.10.205 -P 3306 -u root -p'测试库密码' -e "CREATE DATABASE IF NOT EXISTS xss DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"echo "导入到测试库..."
mysql -h 192.168.10.205 -P 3306 -u root -p'测试库密码' xss < /tmp/xss_prod_backup.sqlecho "✅ 数据同步完成"
然后运行:
chmod +x sync_xss_db.sh
./sync_xss_db.sh
因为我是在 Windows 系统上运行命令,而 /tmp/xss_prod_backup.sql 是 Linux/macOS 路径格式,Windows 不识别这个路径,所以提示“系统找不到指定的路径”。
✅ 解决办法:将备份文件保存到 Windows 识别的路径
例如保存到 D:\backup\xss_prod_backup.sql:
1.创建备份目录(如果还没有)
打开 D: 盘,手动创建一个 backup 文件夹。
2.修改命令如下:
mysqldump -h 192.168.10.205 -P 3307 -u root -数据库密码 xss > D:\backup\xss_prod_backup.sql
注意事项:
-p 后 不要加引号或空格(Windows 下加引号可能会被当作参数一部分);
路径用 D:… 而不是 /tmp/…;
路径中不能有不存在的文件夹;
✅ 接下来导入到测试库(3306)
mysql -h 192.168.10.205 -P 3306 -u root -p123456 xss < D:\backup\xss_prod_backup.sql
执行代码时遇到下面的信息
mysqldump: [Warning] Using a password on the command line interface can be insecure.
这个提示信息是 正常的警告,它只是告诉你:
⚠️ “在命令行中直接使用密码存在安全风险。”
但不会影响你导出数据,只要没有报错,就说明备份文件 D:\backup\xss_prod_backup.sql 已成功生成。