javaanddonet/mysql-client

By javaanddonet

Updated 9 months ago

MySQL客户端镜像文件

Image
Databases & Storage
Integration & Delivery
Developer Tools
1

78

mysql 客户端镜像文件

概述

  1. 基于Ubuntu20.04版本构建。
  2. 里面安装了MySQL8.0的数据库客户端软件。
  3. 里面配置了定时任务,默认每天凌晨1点执行备份数据库的任务。
  4. 里面配置邮件服务,可以发送邮件通知到指定的邮箱,数据库备份的结果和相关日志文件。
  5. 备份文件的存放目录为/backup,并且配置了备份文件定期清理的功能。可以根据参数控制保留指定日期内的备份文件。
  6. 备份操作支持分库分表备份,即支持:一个数据库一个备份文件,或者一个数据库下面的每个表一个备份文件。
  7. 备份还支持是否只备份DDL,或者是否只备份数据。
关于参数

运行容器的时候,请传入如下参数:

  • MYSQL_HOST_NAME:必选参数,待备份的数据库的主机名称或IP地址,传入的时候,用双引号包裹起来。
  • MYSQL_BACKUP_USER_NAME:必选参数,执行备份操作的数据库用户名称,最好是root用户,传入的时候,用双引号包裹起来。
  • MYSQL_BACKUP_USER_PASSWORD:必选参数,执行备份操作的数据库用户的密码,传入的时候,用双引号包裹起来。
  • MYSQL_PORT:可选参数,待备份的数据库的端口号,如果不传入,默认使用3306。
  • BACKUP_DB_LIST:可选参数,待备份的数据库列表有哪些,多个数据库用空格分隔,双引号包裹。不传入则备份所有的数据库。
  • PROJECT_NAME:可选参数,项目名称,该参数的值会用在邮件的标题中,表明是哪个项目的数据库备份通知邮件,传入的时候,用双引号包裹起来。
  • EMAIL_RECEIVER_ADDRESS:可选参数,邮件地址,用于接受备份数据库完成后的通知邮件,传入的时候,用双引号包裹起来。不传入则不发送邮件。
  • SEPARATE_DB_AND_TABLE:可选参数,是否分库分表备份,是请传入Y,否则可以不传入该参数,默认是不分库发表备份。
  • BACKUP_TRIGGERS:可选参数,是否要备份触发器。如果不备份请传入N,否则请传入Y。不传入该参数的时候,默认值为Y。
  • BACKUP_ROUTINES:可选参数,是否需要备份函数和存储过程。如果不备份请传入N,否则请传入Y。不传入该参数的时候,默认值为Y。
  • BACKUP_EVENTS:可选参数,是否要备份定时任。如果不备份请传入N,否则请传入Y。不传入该参数的时候,默认值为Y。
  • BACKUP_FILE_RETENTION_PERIOD:可选参数,备份文件保留的时间周期,不传入则默认保留31天以内的备份文件。
  • BACKUP_SCHEDULE: 可选参数,备份脚本执行的周期,和Linux的crontab定义的方式一样,如:每天凌晨1点执行,请传入:"0 1 * * *"。默认每天凌晨1点。
  • DRY_RUN:可选参数,是否验证备份任务,传入该参数只会走一遍备份流程,但是不会真正的执行备份操作。不传入该参数则会执行真正的备份操作。
关于挂载

挂载目录请选择:/xxx/xxx:/backup backup是容器内部的挂载目录,用于存放生成的备份文件。

如何运行
docker run -itd \
-e MYSQL_HOST_NAME="localhost" \
-e MYSQL_BACKUP_USER_NAME="root" \
-e MYSQL_BACKUP_USER_PASSWORD="123456" \
-e MYSQL_PORT=3306 \
-e BACKUP_DB_LIST="my_db_name1 mydb_name2" \
-e PROJECT_NAME="测试项目" \
-e EMAIL_RECEIVER_ADDRESS="example@126.com" \
-e SEPARATE_DB_AND_TABLE=Y \
-e BACKUP_TRIGGERS=Y \
-e BACKUP_ROUTINES=Y \
-e BACKUP_EVENTS=Y \
-e BACKUP_FILE_RETENTION_PERIOD=100 \
-e BACKUP_SCHEDULE="0 1 * * *" \
--name mysql-backup-container \
-v /backup_dir:/backup \
javaanddonet/mysql-client:8.0-ubuntu-22.04-v1.3

或者,直接当成一个数据库客户端来使用:

docker run -itd \
--name mysql-client-container \
javaanddonet/mysql-client:8.0-ubuntu-22.04-v1.3

TO DO LIST

ubuntu
  • mysql5.7 client on ubuntu 24.04
centos
  • mysql8.0 client on centos7
  • mysql8.0 client on centos8
  • mysql5.7 client on centos7
  • mysql5.7 client on centos8

Docker Pull Command

docker pull javaanddonet/mysql-client