碰到了一个需求,需要进行数据库数据迁移。但是目标数据库是在docker容器内的,不能很方便的用Navicat进行直接传输,所以需要回归传统方法。
这个教程适用于已经具备以下条件者:
- 掌握
Linux
基本操作 - 掌握
Docker
的基本操作 - 掌握
MySQL
的基本操作 - 已创建有效
MySQL
的docker
容器 - 已有有效
.sql
文件
进入正题:
1. 复制sql文件到容器内部
命令:
sudo docker cp /opt/ mymysql:/home/tmp/
- 1
命令说明:docker cp 本地文件路径 自定义容器名:目标文件名
2. 进入容器,登录mysql
docker exec -it mymysql mysql -uroot -p123456
- 1
3. 选择数据库(没有则需要创建)
因为很多数据库导出的.sql
文件中不包含选择数据库, 所以此步进行补充。
将mydatabase替换为你的数据库名:
use mydatabase;
- 1
4. 导入并执行sql文件
source /home/tmp/a.sql;
- 1
其中,/home/tmp/
就是第一步的目标文件名。
以上就是全部过程,若有遗漏,欢迎指出。