当前位置: 首页 > news >正文

将生产库的数据连同表结构一起复制到测试库中

✅ 方法一:使用 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 已成功生成。

http://www.lryc.cn/news/596084.html

相关文章:

  • 如何安装没有install.exe的mysql数据库文件
  • ZLMediaKit 入门
  • 20250722在Ubuntu 24.04.2下配置编译RD-RK3588开发板的Android13的编译环境
  • wps dispimg python 解析实现参考
  • 二分查找-852.山峰数组的峰顶索引-力扣(LeetCode)
  • 函数——C语言的重要部分
  • React Three Fiber 实现昼夜循环:从光照过渡到日月联动的技术拆解
  • 金山办公WPS项目产品总监陈智新受邀为第十四届中国PMO大会演讲嘉宾
  • 两个android,一个客户端一个服务器端
  • 深入解析 Spark:关键问题与答案汇总
  • 在easyui中如何自定义表格里面的内容
  • Python爬虫实战:研究pymorphy2库相关技术
  • Python爬虫实战:研究PyPLN库相关技术
  • 【文献笔记】ARS: Automatic Routing Solver with Large Language Models
  • PHP获取淘宝拍立淘(以图搜图)API接口操作详解
  • 如何迁移jenkins至另一台服务器
  • 一个基于现代C++智能指针的优雅内存管理解决方案
  • 探索飞算JavaAI:AI赋能Java开发的新范式
  • docker 设置镜像仓库代理
  • 碰一碰发视频源码搭建:支持OEM
  • 初识opencv01——基本api操作
  • 分布式高可用ELK平台搭建及使用保姆级教程指南
  • 大数据之Hive:Hive中week相关的几个函数
  • 分布式数据库中间件ShardingSphere
  • Protobuf学习
  • SysMind:Go 语言驱动的AI系统运维助手
  • 用Python实现神经网络(六)
  • 【计算机网络 篇】TCP基本认识和TCP三次握手相关问题
  • WebSocket心跳机制实现要点
  • 深入浅出理解 TCP 与 UDP:网络传输协议的核心差异与应用