zoukankan      html  css  js  c++  java
  • mysql-docker备份

    crontab -e
    0 8 * * * docker exec mysql_container mysqldump -uroot -proot_password database_name > /var/backups/mysql/$(date +%Y%m%d_%H%M%S).sql
    mysql_container 为你的数据库容器名
    mysqldump 是mysql数据库导出数据的指令
    -u 填写root账号
    -p 填写root密码
    database_name 需要备份的数据库名
    /var/backups/mysql/$(date +%Y%m%d_%H%M%S).sql 备份文件,后面是文件名的格式
    注:mysql备份的时候我使用了docker exec -it mysqldump ... 这样的命令去做bash脚本,因为-i参数是有互动的意思,导致在crontab中执行定时任务的时候,没有输出数据到sql文件当中。
    所以使用crontab定时的对docker容器进行备份命令的时候不要添加-i参数。
    
    建议把数据库备份的命令写成一个bash脚本。在crontab这里调用就好了
    vim /var/backups/mysql/mysqldump.sh文件
    docker exec mysql_container mysqldump -uroot -pmypassword database_name > /var/backups/mysql/$(date +%Y%m%d_%H%M%S).sql
    crontab -e 
    0 20 * * * /var/backups/mysql/mysqldump.sh
    
    mysql备份优化
    修改脚本
    export mysqldump_date=$(date +%Y%m%d_%H%M%S) && 
    docker exec mysql_container mysqldump -uroot -pmypassword database_name> /var/backups/mysql/$mysqldump_date.sql && 
    gzip /var/backups/mysql/$mysqldump_date.sql
    find /var/backups/mysql/ -name "*.sql" -mtime +15 -exec rm -f {} ;
    
    数据恢复
    docker exec -i mysql_container mysql -uroot -proot_password database_name < /var/backups/mysql/20200619_120012.sql
    
    参考链接
    https://www.cnblogs.com/Johnson-lin/p/13178028.html
    
  • 相关阅读:
    单片机学习01__跑起你的流水灯
    python2与python3共存
    rpi-kali 搭建网络靶场
    P3388 【模板】割点(割顶)
    P3387 【模板】缩点
    P1069 细胞分裂
    The Unique MST[不严格的次小生成树]
    P3369 【模板】普通平衡树
    Netty的线程模型可不是Reactor这么简单
    SpringBoot+Mybatis+MySQL实现读写分离
  • 原文地址:https://www.cnblogs.com/kylingx/p/13178889.html
Copyright © 2011-2022 走看看