# Mysqlmail **Repository Path**: noovertime/mysqlmail ## Basic Information - **Project Name**: Mysqlmail - **Description**: 每天自定义时间备份您的mysql数据,并通过邮件发送~ - **Primary Language**: Docker - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-01-01 - **Last Updated**: 2024-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Mysqlmail mysqlmail是一款定时导出您的mysql数据并通过邮件发送到指定邮箱的一个简单项目,通过这个项目您可以每天邮件备份mysql数据库,推荐在Kubernetes平台使用,同样支持Docker容器下使用。 ## 版本说明 | 版本ID | 创建时间 | | --------------- | ---------- | | mysqlmail:1.0.5 | 2022-01-01 | ## 使用说明 ### Docker容器启动项目 首先使用如下命令获取您的容器数据库IP地址: ```shell docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${数据库容器名或ID} ``` 参数介绍: RUNTIME:启动时间 **ps:因为时区问题,容器内时间要减去8小时,如当前18:00,容器内时间10:00** HOST: 数据库IP地址 USER: 数据库用户 DATABASE: 需要备份的数据库库名 TARGETMAIL: 需要发送的邮箱地址 **请根据上述参数修改启动命令** 启动命令: ```shell docker run -itd --name mysqlmail \ -e RUNTIME=084900 \ -e HOST=172.17.0.3 \ -e USER=root -e PASSWORD=123456 \ -e DATABASE=solo \ -e TARGETMAIL=1849539179@qq.com \ registry.cn-hangzhou.aliyuncs.com/demoimage/mysqlmail:1.0.5 ``` ### Kubernetes启动项目 在kubernetes中,mysqlmail以sidecar的方式启动,以下为yaml文件参考 配置文件挂载为configmap ```yaml apiVersion: v1 kind: ConfigMap metadata: name: mysqlmail-conf namespace: solo data: application.yml: | RUNTIME: 160000 HOST: 127.0.0.1 USER: root PASSWORD: 123456 DATABASE: solo TARGETMAIL: 1849539179@qq.com ``` 通过sididcar的方式注入到mysql实例中,并引用上面的配置文件 ```yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql namespace: solo spec: serviceName: mysql-service selector: matchLabels: app: mysql replicas: 1 template: metadata: labels: app: mysql spec: containers: - name: mysqlmail-bak imagePullPolicy: IfNotPresent image: registry.cn-hangzhou.aliyuncs.com/demoimage/mysqlmail:1.0.5 volumeMounts: - name: mysqlmail-conf mountPath: /app/application.yml subPath: application.yml - name: mysql-pod imagePullPolicy: IfNotPresent image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: "123456" ports: - containerPort: 3306 name: msyql-listin volumeMounts: - name: mysql-data mountPath: /var/lib/mysql subPath: mysql-data - name: mysql-conf mountPath: /etc/mysql/conf.d/my.cnf subPath: my.cnf volumes: - name: mysql-data hostPath: path: /data/mysql - name: mysql-conf configMap: name: mysql-conf - name: mysqlmail-conf configMap: name: mysqlmail-conf ``` ## 成果展示 ![输入图片说明](imageimage.png)