首页 > 数据库 > 【Docker】MySQL容器定时备份

【Docker】MySQL容器定时备份

时间:2023-02-11 16:32:14浏览次数:48  
标签:mysql 备份 xxx 导出 sql db1 Docker db2 MySQL

我们通常使用原生的mysql会比较多,mysql的备份也耳熟能详。假如现在有个mysql数据库username为root,password为123456,且现在要导出schema为db1、db2的数据。

在本地导出的时候我们可以通过

mysqldump -uroot -p123456 --databases db1 db2 > /data_backup/xxx.sql

将schema为db1、db2的数据导出到路径为/data_backup/xxx.sql的文件中。

但是若mysql为docker镜像的时候应该怎样进行导出呢?

很多同学也许会想着使用

docker exec -it $container_name mysqldump -uroot -p123456 --databases db1 db2 > /data_backup/xxx.sql

进行导出。但是会发现直接使用上面语句导出是可以得到xxx.sql的数据备份的,但是如果将语句放在定时器上执行却是得到一个为空的xxx.sql文件。

究竟是为什么呢?

通常我们意识里会认为能够执行的语句或者脚本也可以通过定时器去执行,定时器只是做一个触发的动作而已。

是的,的确没有错,但是问题就在于如何触发执行里。

当我们手动执行的时候是通过docker exec -it去创建一个伪终端去执行mysqldump的,所以是可行的。

但是在定时器自动触发的时候本来就是在终端里面,因此是不需要通过-it进行伪终端的创建的,因为后者是没有宿主机的环境变量的,因此会报错。

所以正确的命令为:

docker exec -i $container_name mysqldump -uroot -p123456 --databases db1 db2 > /data_backup/xxx.sql

把t去掉就可以了。 

标签:mysql,备份,xxx,导出,sql,db1,Docker,db2,MySQL
From: https://blog.51cto.com/u_15761576/6050902

相关文章

  • 面试题--mysql的数据库优化
    mysql的数据库优化 当有人问你如何对数据库进行优化时,很多人第一反应想到的就是SQL优化,如何创建索引,如何改写SQL,他们把数据库优化与SQL优化划上了等号。当然这不......
  • docker安装/启动mysql服务
    docker命令如下dockerrun-tid--namemysql\--restart=always\--network=host\-v/data/mysql/conf.d/:/etc/mysql/conf.d\-eMYSQL_ROOT_PAS......
  • MySQL 事务和MVCC原理
        事务定义事务是一组操作,这些操作可以是一条SQL语句、一组SQL语句或整个程序。      什么时候会用到事务呢?当多张强一致关联的表,需要进行数......
  • 网易一面:select分页要调优100倍,说说你的思路?(内含Mysql的36军规)
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • RPM 安装 Mysql8.0
    一、环境Centos Stream8 ---Linuxversion4.18.0-326.el8.x86_64([email protected])(gccversion8.5.020210514(RedHat8.5.0-3)(GCC))......
  • mysql为何使用B+树作为索引
    讲mysqlinnodb使用B+树作为索引的原因:https://juejin.cn/post/7081065180301361183分析mysql数据特点:存储在磁盘,为了提升性能,需要尽量减少io操作分析所有数据结构:线性......
  • Docker
    第一部分Docker快速入门centos下载http://mirrors.aliyun.com/centos/7/isos/x86_64/配置阿里云yum源1.下载安装wgetyuminstall-ywget2.备份默认的yummv/et......
  • Docker 内安装 SSH 服务
     有时候我们想把Docker环境提供给别人,但是又不想提供宿主机,那么可以在Docker容器内运行SSH服务,使容器保持运行并提供给对方使用即可,下面我们以CentOS7.6的Dock......
  • mysql-proxy 读写分离,不支持mysql5.7的client客户端登录
    安装前,先有mysql主从下载proxy,https://downloads.mysql.com/archives/proxy/#downloadswgethttps://downloads.mysql.com/archives/get/p/21/file/mysql-proxy-0.8.5-......
  • 【云原生之Docker实战】使用Docker部署ShowDoc文档工具
    (【云原生之Docker实战】使用Docker部署ShowDoc文档工具)一、ShowDoc介绍1.ShowDoc简介ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。通过showdoc,你可以方......