考试系统的数据库一直是在我自己的服务器上面的, 但是最近,自己的服务器马上要过期了,里面的MySQL数据需要迁移出来,放在另外一个服务器上面。
百度了几篇教程,也没研究太多,选了一种比较简单的方式进行迁移,下面是具体步骤
导出老数据库数据
把老数据库导出貌似有好几种方式,我选的是把MySQL的一个个库转化成SQL文件
具体操作如下
先进入容器中
docker exec -it 35273f12fb4b bash
把数据转化为sql语句
mysqldump -uroot -p 数据库名称 > /root/mysqldump/exam.sql
然后输入MySQL的密码即可
然后查看一下/root/mysqldump/exam.sql 里面已经有大量的sql语句了
把sql文件从容器中拷贝出来
有两种方式,一是使用容器挂载,最初的时候,启动MySQL容器的时候没有挂载这个目录,所以需要重新挂载一下,但是我觉得这种方式有些危险,换了另外一种方式:直接拷贝到宿主机即可
首先退出容器
docker cp 容器id:容器内路径 宿主机目标路径
docker cp 35273f12fb4b:/root/mysqldump/exam.sql /usr/local/exam.sql
然后sql文件就被拷贝到了宿主机上面
把sql文件从老服务器上面转移到新服务器上面
我们可以使用x-shell分别连接两个服务器,然后直接拖拽过去即可
从新服务器移动到容器内部中
在新服务器中把sql文件导入新的数据库
mysqldump -uroot -p exam < /exam.sql
使用navicat查看数据是否成功
总结
这种方法还是挺好理解的,就是旧的mysql数据库里面导出来sql文件需要经过好几个地方周转,整体来说还算顺利。
========================2023年3月10日 15:50:06补充=================
使用navicat看了一下,发现navicat可以直接迁移数据库,我们直接把老服务器的库里面的表拖拽到新的服务器的数据库里面,然后navicat就会弹出选项,让我们直接选择要迁移的表格,我们直接勾选全部,就完成了数据库迁移。
参考文章:
MySQL数据库--几种数据迁移的方法详解都在这了!看完必懂_mysql数据迁移_普通网友的博客-CSDN博客
宿主机复制文件到docker容器(centos)_contos 文件考进容器中_--悟_道--的博客-CSDN博客
Docker 从容器中拷贝文件到宿主机中_从docker里面拷贝文件_桑汤奈伊伏的博客-CSDN博客
docker对已经启动的容器添加目录映射(挂载目录)_docker 目录映射_alwaysonline819的博客-CSDN博客