想成为一名真正干货满满、实用又在线的 DBA?今天我们就从“SQL审核”这条干线开始,切入 Yearning 实操。这篇文章专注一步一脚印,一点白话,细节调试全到位,适合小白,也满足资深 DBA 玩转 DevOps 的需求。文中所有命令都适用于你在 aimalinux 下部署,也可以直接以 Docker Compose 一键启动。顺便用你常用的 DataGrip 做演示截图。
Yearning 是一款基于 Go + Vue 的开源 MySQL SQL 审核平台,支持自动审查、SQL 审核流程、审批后执行、自动生成回滚语句,还包括查询审计、回滚管理、LDAP 登录、钉钉/邮件通知 。
简言之:在 DevOps 流程中,把代码、自动化、审核、安全都串起来,开发提交 SQL 工单,DBA 审核+执行,系统记录并自动提供回滚,透明又安全。
它们的互动流程如下:
# 1. 安装 MySQL 并创建数据库
mysql -uroot-p
CREATE DATABASE Yearning CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 2. 下载 Yearning linux 二进制
wget https://github.com/cookieY/Yearning/releases/download/v3.1.0/Yearning-v3.1.0-linux-amd64.zip
unzip Yearning-v3.1.0-linux-amd64.zip
cd Yearning-v3.1.0-linux-amd64
# 3. 配置 conf.toml(这是核心配置文件)
vim conf.toml
# 内容示例:
[Mysql]
Host ="127.0.0.1"
Port ="3306"
User ="root"
Password ="你的密码"
Db ="Yearning"
[General]
SecretKey ="16 字符随机串"
# SecretKey 只能设置一次,后续请勿更改,避免数据无法解密
# 4. 初始化 + 启动
./Yearning install
./Yearning run
./Yearning install
—— 创建所有后台表结构./Yearning run
—— 启动 HTTP 服务,默认监听 8000 端口,账号:admin/Yearning_adminhttp://127.0.0.1:8000
在一个目录下创建 docker-compose.yml
,内容如下:
version:'3'
services:
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: yourpass
MYSQL_DATABASE: Yearning
ports:
-"3306:3306"
volumes:
- ./mysql-data:/var/lib/mysql
yearning:
image: easysoft/yearning:latest
depends_on:
- mysql
environment:
DB_HOST: mysql
DB_PORT:
DB_NAME: Yearning
DB_USER: root
DB_PASSWORD: yourpass
SECRET_KEY: abcdefgh12345678
IS_DOCKER: is_docker
ports:
-"18000:8000"
command: /bin/bash -c "./Yearning install && ./Yearning run"
volumes:
- ./yearning-data:/data
命令:
docker-compose up -d
http://localhost:18000
被提交的 SQL:
DELETEFROM orders WHERE created_at <'2024-01-01';
回滚 SQL 自动生成:
INSERTINTO orders_backup SELECT*FROM orders WHERE created_at <'2024-01-01';
(真实情况 Yearning 自动完成,开发人员看见即可)
Yearning 是 DevOps 环境中简洁、高效、可追溯、可回滚的 SQL 审核利器。当你用 DataGrip 开发,直接把工单往里面交,DBA 审核、执行,并自动生成回滚与审计日志,小白也能明确 SQL 温饱、生产安全无误。如果你是 aimalinux 用户,本文提供了铺满坑的落地步骤,无痛实操。