千家信息网

Docker容器中Mysql数据的导入/导出详解

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,前言Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢?解决办法其实还是用mysqldump命令,但是我们需要进入docker的my
千家信息网最后更新 2024年09月22日Docker容器中Mysql数据的导入/导出详解

前言

Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢?

解决办法其实还是用mysqldump命令,但是我们需要进入docker的mysql容器内去执行它,并且通过配置volumes让导出的数据文件可以拷贝到宿主机的磁盘上

所以操作步骤就可以分为:

  • 配置docker的volumes
  • 进入docker的mysql容器,导出数据文件

至于数据导入,太过简单,就不说了

先来看看mysqldump命令常见选项:

  • --all-databases, -A: 备份所有数据库
  • --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。
  • --force, -f:即使发现sql错误,仍然继续备份
  • --host=host_name, -h host_name:备份主机名,默认为localhost
  • --no-data, -d:只导出表结构
  • --password[=password], -p[password]:密码
  • --port=port_num, -P port_num:制定TCP/IP连接时的端口号
  • --quick, -q:快速导出
  • --tables:覆盖 --databases or -B选项,后面所跟参数被视作表名
  • --user=user_name, -u user_name:用户名
  • --xml, -X:导出为xml文件

配置volumes

首先我是利用docker-compose进行docker容器的编排,完整的配置代码请看这个项目: liumapp/rabbitmq-mysql-redis-in-docker

请注意这个项目的docker-compose.yml配置文件中,有以下几行:

 mysql: container_name: mysql image: mysql:5.5.60 restart: always volumes:  - ./mysql/data:/var/lib/mysql  - ./mysql/conf/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.cnf

我对mysql容器配置的volumes,是把项目的mysql/data目录和docker容器内的/var/lib/mysql建立映射关系

所以下面我进入docker的mysql容器内执行导出命令的时候,只需要把数据导出在/var/lib/mysql/目录下,就可以在宿主机的./mysql/data/目录下找到对应的数据文件

进入容器导出数据

首先执行

docker ps

找到mysql容器的name

然后执行

docker exec -it mysql /bin/bash

进入容器

执行命令

whereis mysql

找到mysql的运行路径,我这里是:/usr/local/mysql/bin,用cd进入

cd /usr/local/mysql/bin

请注意,这里的路径是指docker容器内的路径,跟您的宿主机路径没有关系

执行导出命令

mysqldump -u 用户名 -p 数据库名 > 保存文件.sql

输入密码后基本导出成功,请注意,保存文件的路径要设置在volumes下面,即/var/lib/mysql/下

随后输入

exit

退出容器内部,回到宿主机上,我们就能够找到导出的数据文件了

如果您要导出csv格式的话,将mysqldump的那句命令改为:

mysql -u 用户名 --password=密码 --database=数据库名 --execute='SELECT `FIELD`, `FIELD` FROM `TABLE` LIMIT 0, 10000 ' -X > 保存文件.sql

即可

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

数据 容器 文件 命令 数据库 配置 路径 备份 宿主 宿主机 密码 用户 用户名 目录 项目 内容 参数 名字 学习 输入 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 星道互联网科技教育 网络安全会议交流发言材料 无线网络技术第一章课件 做软件开发的公司有几条产品线 多台笔记本共用一个服务器 江西戴尔服务器厂家电话 mc服务器备份在那个文件里 网络安全包涵哪方面 深圳迈瑞医疗软件开发 小程序服务器到期了怎么换 是互联网金融科技公 桌面软件开发还有前途吗 最近网络安全有哪些新闻 内蒙古高考填报考数据库 java后端网络安全 海康媒体服务器 死亡之夜联机需要服务器么 服务器查看网卡接口 茌平软件开发项目管理在线咨询 自己制作服务器不备案可以吗 超图 数据库工作空间 网络安全故事进课堂教育日 邢台市网络安全办公室主任 微信发送文件如何在服务器加密 分析海量数据用什么数据库 路由器添加虚拟服务器 c 导入shp文件到数据库 奉贤区网络技术服务信息推荐 互联网科技电动车 创云软件开发工作室
0