首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SQL审核工具Yearning实操,DevOps必备

SQL审核工具Yearning实操,DevOps必备

作者头像
IT咸鱼
发布2025-07-02 19:04:50
发布2025-07-02 19:04:50
34600
代码可运行
举报
运行总次数:0
代码可运行

想成为一名真正干货满满、实用又在线的 DBA?今天我们就从“SQL审核”这条干线开始,切入 Yearning 实操。这篇文章专注一步一脚印,一点白话,细节调试全到位,适合小白,也满足资深 DBA 玩转 DevOps 的需求。文中所有命令都适用于你在 aimalinux 下部署,也可以直接以 Docker Compose 一键启动。顺便用你常用的 DataGrip 做演示截图。

一、Yearning 是啥?

Yearning 是一款基于 Go + Vue 的开源 MySQL SQL 审核平台,支持自动审查、SQL 审核流程、审批后执行、自动生成回滚语句,还包括查询审计、回滚管理、LDAP 登录、钉钉/邮件通知 。

简言之:在 DevOps 流程中,把代码、自动化、审核、安全都串起来,开发提交 SQL 工单,DBA 审核+执行,系统记录并自动提供回滚,透明又安全。

二、核心组件关系图

  • Yearning(审核中心):处理 SQL 工单—提交、审批、执行、回滚
  • MySQL:作为审核平台后台存储(Yearning 也运行在 MySQL 上)
  • 被审数据库:开发、测试或生产环境的 MySQL,用于实际运行 SQL
  • DataGrip:开发者写 SQL 的前端工具,用于提交工单、查看执行结果
  • Docker Compose(可选):一键部署 MySQL + Yearning

它们的互动流程如下:

  1. 开发在 DataGrip 写 SQL,提交到 Yearning
  2. Yearning 审核逻辑(语法 + 规则检查 + 回滚语句生成)
  3. DBA 批准后 Yearning 执行 SQL,并把回滚语句记录
  4. 审核记录留档,查询记录归档可追踪

三、动手部署 Yearning

方法一:裸机部署(aimalinux)

代码语言:javascript
代码运行次数:0
运行
复制

# 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_admin
  • 前端地址: http://127.0.0.1:8000

方法二:Docker Compose 快速部署

在一个目录下创建 docker-compose.yml,内容如下:

代码语言:javascript
代码运行次数:0
运行
复制

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

命令:

代码语言:javascript
代码运行次数:0
运行
复制

docker-compose up -d
  • Yearning 前端访问地址:http://localhost:18000
  • 多环境配置高效,隔离也方便

四、DataGrip 提交 SQL 工单实操

  1. 登录 Yearning 前端(DataGrip 自带跳转浏览器)。
  2. 添加 “数据源”: 填被审数据库的连接信息,分读写权限;
  3. 创建审核流程模板(至少一个“审核”步骤,否则无法生成回滚语句);
  4. 配置权限组(DML、DDL、QUERY);
  5. 创建用户并加入权限组——以你的 DataGrip 用户操作;
  6. 以用户提交 SQL 工单,例:删表、插入、UPDATE 等;
  7. 审核人审批后,执行生成回滚 SQL;
  8. 在 DataGrip 查看执行状态,并拍截图。

五、最佳实践 & 小白注意事项

  • SQL 语法支持:支持 99% 常规 MySQL SQL,但复杂多表、跨库 DML、存/触发器回滚不一定支持.
  • SecretKey 安全提醒:一旦部署后不要改 key,否则无法解密生产数据源密码 
  • 流程务必包含审批步骤:无审核就不能回滚!
  • 回滚示例

被提交的 SQL:

代码语言:javascript
代码运行次数:0
运行
复制

DELETEFROM orders WHERE created_at <'2024-01-01';

回滚 SQL 自动生成:

代码语言:javascript
代码运行次数:0
运行
复制

INSERTINTO orders_backup SELECT*FROM orders WHERE created_at <'2024-01-01';

(真实情况 Yearning 自动完成,开发人员看见即可)

https://next.yearning.io/images/dash01.png
https://next.yearning.io/images/dash01.png

六、总结 

Yearning 是 DevOps 环境中简洁、高效、可追溯、可回滚的 SQL 审核利器。当你用 DataGrip 开发,直接把工单往里面交,DBA 审核、执行,并自动生成回滚与审计日志,小白也能明确 SQL 温饱、生产安全无误。如果你是 aimalinux 用户,本文提供了铺满坑的落地步骤,无痛实操。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT咸鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Yearning 是啥?
  • 二、核心组件关系图
  • 三、动手部署 Yearning
    • 方法一:裸机部署(aimalinux)
    • 方法二:Docker Compose 快速部署
  • 四、DataGrip 提交 SQL 工单实操
  • 五、最佳实践 & 小白注意事项
  • 六、总结 
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档