zoukankan      html  css  js  c++  java
  • Docker MySQL备份


    建立备份的MySQL容器

    docker run --name mysql-back -e MYSQL_ROOT_PASSWORD=root -v /srv/mysql/backup:/mysql/backup -d mysql:5.7.17
    

    查看虚拟网络,其中 bridge 是 Docker 默认使用的虚拟网络:

    docker network inspect bridge
    

      

    在返回的结果中,找到 Containers 部分。内容如下:

    "Containers": {
      "asdf2334a": {
        "Name": "mysql-a"
        "EndpointID": "sadfas234"
        "MacAddress": "...."
        "IPv4Address": "192.168.0.2"
        "IPv6Address": ""
      }
    
    }
    

    Containers 列出了所有使用 bridge 网络的容器。因为我给 MySQL 服务器容器起名为 mysql-a,所以我查看Name 为 mysql-a 的配置。IPv4Address表示容器mysql-a的虚拟IP是 192.168.0.2 。记录下这个IP 。

    进入容器的 bash :

    docker exec -it mysql-b bash
    

    安装VIM和CRON定时任务:

    apt-get update && apt-get install vim
    apt-get update && apt-get install cron
    

    生成一个shell脚本文件来进行备份。

    cat >/zc/mysql/backup.sh <<EOF
    #!/bin/sh
    zcDATE=$(date +%Y%m%d)
    mkdir /zc/mysql/backup/$zcDATE
    mysqldump -h '192.168.0.2' -uroot -p'123456' --databases db1 > /zc/mysql/backup/$zcDATE/db1.sql
    mysqldump -h '192.168.0.2' -uroot -p'123456' --databases db2 > /zc/mysql/backup/$zcDATE/db2.sql
    EOF
    

    MySQL上存在两个数据库,名称分别是 db1 和 db2,利用这种方式在硬盘上备份数据。-h表示远程的服务器IP。-u 和 -p 分别是远程服务器的用户名和密码。这里不建议使用 mysqldump 的 –all-database 选项。因为该选项会把远程MySQL里的系统数据库也备份下来,包括 root 用户的密码等内容。如果你要把导出的内容导入到别的机器上,这些系统设置(比如用户名和密码)会覆盖你的机器上原来的设置。

    设置定时任务的启动时间:

    crontab -e
    0 23 * * * sh /zc/mysql/backup.sh
    

    启动定时任务

    service cron start
    

      

  • 相关阅读:
    方法转换IE、Firefox、Chrome区别
    splice方法便签
    webstorm主题网址+使用方法
    从程序员到项目经理(一):没有捷径
    界面原型图绘制工具Pencil
    程序员:伤不起的三十岁
    从程序员到项目经理(三):认识项目经理
    从程序员到项目经理(二):如何胜任
    原型制作软件 Axure RP
    软件界面原型设计工具 UIDesigner
  • 原文地址:https://www.cnblogs.com/xuezhigu/p/6595617.html
Copyright © 2011-2022 走看看