如何从测试环境的docker中的mysql下载数据到本地windows中

运用场景:测试系统数据变化比较复杂,较难定位是哪一个操作影响的问题,同时测试系统有一台跳板机

目前能想到的方案有两种:
1、开启远程调试
即:开启远程调试模式,测试系统的操作可以进入本地的idea里面的断点进行一步步的debug,
远程调试需要配置一些东西,有些同事经常用这种方式,我没试过这种,所以下次再尝试这种
2、拷贝数据库数据到本地环境重现
1、准备工具 Xshell、Xftp
2、进入测试系统,测试系统有跳板机,不能直接进入,也就是说需要进入A机器,然后再SSH 到B机器,B机器才是真的我们存储和操作数据的机器(如果测试系统只有一台机器,那就更简单了。如果测试系统没有用docker,那就直接scp,或者直接用navicate连接,完全不用考虑ftp文件传输这种伤身的方式)
所以数据移动式从B机器的docker的mysql导出数据到根目录,然后再移动到A机器,剩下的scp就简单了

详细步骤
1、进入B机器 docker exec -it mysql bash
2、mysqldump -u用户名 -p密码 –default-character-set=utf8 –hex-blob –databases testdb> /testdb.sql
3、dump操作会把数据文件导出到根目录 cd / 既可以查看到
4、exit 推出mysql,然后docker cp mysql:/testdb.sql . 注意最后面那个点不能漏掉,表示当前目录
5 推出B机器,回到A机器,输入B机器+文件位置,记住后面的.不能漏掉
scp 用户名@B地址:/目录/目录/test.sql .
6、接着在Xshell中点击新建文件传输,直接用Xftp把A机器的文件拷贝到本地

附上时序图方便理解

Created with Raphaël 2.1.0罗星星的windows罗星星的windowsA机器(跳板机)A机器(跳板机)B机器(测试环境、docker的宿主机)B机器(测试环境、docker的宿主机)docker中mysql实例docker中mysql实例Xshell中用户输入A机器的账号、密码发送账号、密码验证账号、密码登陆成功Xshell中用户输入B机器的账号、密码验证用户名、密码验证账号、密码验证成功docker exec -it mysql bashdump数据文件docker cp mysql:/testdb.sql .scp B机器地址和文件位置Xftp工具将A机器中的文件拷贝到winend

你可能感兴趣的:(工具,mysql,数据库)