
hanchuanchuan/goinception该镜像提供集成化MySQL运维工具,整合语句审核、批量执行与定时备份功能,旨在简化数据库日常管理流程。通过容器化部署,帮助数据库管理员与开发团队高效处理SQL审核、脚本执行及数据备份任务,降低人工操作风险,提升运维规范性。
bashdocker run -d \ --name mysql-ops-tool \ -e MYSQL_HOST=192.168.1.100 \ -e MYSQL_PORT=3306 \ -e MYSQL_USER=admin \ -e MYSQL_PASSWORD=SecurePass123 \ -e BACKUP_DIR=/backups \ -e BACKUP_CRON="0 1 * * *" \ # 每天凌晨1点执行全量备份 -v /data/mysql/backups:/backups \ # 挂载备份存储卷 -v /data/mysql/scripts:/scripts \ # 挂载SQL脚本目录 -v /data/mysql/config:/app/config \ # 挂载配置目录 --restart=always \ mysql-ops-tool:latest
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
MYSQL_HOST | 目标MySQL主机地址(支持多实例用逗号分隔) | localhost |
MYSQL_PORT | MySQL服务端口 | 3306 |
MYSQL_USER | 数据库操作账号(需具备EXECUTE/SELECT权限) | root |
MYSQL_PASSWORD | 数据库账号密码(必填项) | 无 |
BACKUP_DIR | 备份文件存储路径(容器内) | /app/backups |
BACKUP_CRON | 定时备份Cron表达式(如"0 1 * * *") | 无(不启用定时备份) |
BACKUP_RETENTION_DAYS | 备份文件保留天数 | 7 |
AUDIT_RULES_PATH | 审核规则配置文件路径(容器内) | /app/config/rules.yml |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR) | INFO |
| 容器路径 | 用途 | 建议挂载宿主机路径 |
|---|---|---|
/backups | 存储备份文件 | /data/mysql/backups |
/scripts | 存放待执行SQL脚本 | /data/mysql/scripts |
/app/config | 自定义配置文件(规则/日志等) | /data/mysql/config |
/app/logs | 工具运行日志 | /data/mysql/ops-logs |
yamlaudit: enabled: true syntax_check: true performance: enable_full_scan_check: true # 检测全表扫描 max_join_tables: 5 # 限制JOIN表数量上限 security: forbidden_commands: # 禁止执行的命令 - "DROP DATABASE" - "TRUNCATE TABLE" update_without_where: false # 禁止无WHERE条件的UPDATE delete_without_where: false # 禁止无WHERE条件的DELETE
/scripts/audit目录/app/logs/audit.loginit_data.sql)放入/scripts/execution目录*.sql)/app/logs/execution.log,包含成功/失败状态/app/bin/backup.sh/app/bin/list_backups.sh/app/bin/restore.sh <备份文件名>(需停止应用写入)MYSQL_USER配置具备足够权限的数据库账号(建议授予SELECT, INSERT, UPDATE, DELETE, EXECUTE权限)/etc/localtime:/etc/localtime:ro)/app/docs/rules_guide.md)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务