阅读视图

发现新文章,点击刷新页面。

Yearning 开源 SQL 审核平台

作者 Teacher Du

Yearning 是一个开源的 SQL 审核平台,专门为简化 SQL 管理流程设计,通常用于数据库的审核和自动化流程管理。Yearning 支持 MySQL 等数据库,提供 Web UI 来审核和管理 SQL 执行。

测试环境

在安装 Yearning 之前,请确保服务器环境满足以下条件。

操作系统:Ubuntu 或者 CentOS「本文默认为 Ubuntu」

数据库 MySQL 5.7 或 8.0。

运行语言:Yearning 是 Go 开发的,所以需要 Go 语言的环境。

安装 MySQL 数据库

如尚未安装 MySQL,可以使用以下命令安装:

1
2
3
4
5
6
7
# Ubuntu 安装 MySQL
sudo apt update
sudo apt -y install mysql-server

# CentOS 安装 MySQL
sudo yum update
sudo yum -y install mysql-server

启动 MySQL 服务并设置开机自启:

1
2
sudo systemctl start mysql
sudo systemctl enable mysql

测试 MySQL 数据库安装成功:

1
mysql -u root -p

在 MySQL 中创建 Yearning 所需的数据库:

1
2
3
4
CREATE DATABASE yearning;
CREATE USER 'yearning'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON yearning.* TO 'yearning'@'localhost';
FLUSH PRIVILEGES;

安装运行语言

Yearning 需要 Go 环境,因此需要先安装 Go。可以使用以下命令安装官方网站的 Go:

1
wget https://golang.org/dl/go1.23.2.linux-amd64.tar.gz

解压安装:

1
sudo tar -xzf go1.23.2.linux-amd64.tar.gz -C /usr/local

配置环境变量:

1
2
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc

验证安装:

1
go version

下载配置

使用以下命令克隆 Yearning 项目源代码:

1
2
3
4
5
# 克隆 Yearning 源代码仓库
git clone https://github.com/cookieY/Yearning.git

# 进入目录
cd Yearning/

Yearning 提供一个配置文件来指定数据库连接等参数。在 Yearning/config 目录中找到 conf.yaml 文件,编辑并配置数据库连接信息:

1
2
3
4
5
6
db:
host: "127.0.0.1"
port: 3306
user: "yearning"
password: "your_password"
name: "yearning"

编译访问

Yearning 需要使用 Go 编译运行。执行以下命令来编译 Yearning:

1
2
3
4
5
# 编译
go build -o Yearning

# 运行
./Yearning

会启动 Web 服务,默认情况端口是 8000。使用浏览器访问 Yearning 的 Web UI:

1
http://IP:8000

初始使用

首次访问 Yearning Web UI 时,会要求设置管理员账号。

设置管理员账号后,可登录系统并开始使用 Yearning 进行 SQL 审核。

Yearning 需连接管理的数据库实例。

前往配置页面,添加要管理的 MySQL 数据库实例。

Yearning 提供了 SQL 提交和审核功能。用户可以通过 Web 界面提交 SQL,管理员审核后可执行或拒绝该 SQL。

Yearning 提供 SQL 审核和执行的记录功能,可以查看每次执行的历史记录和结果。

使用 Docker 安装 Yearning

如果希望使用 Docker 来简化安装过程,Yearning 提供 Docker 支持。将下面的代码保存为 docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '3'

services:
yearning:
image: yeelabs/yearning:latest
environment:
MYSQL_USER: yearning
MYSQL_PASSWORD: ukC2ZkcG_ZTeb
MYSQL_ADDR: mysql
MYSQL_DB: yearning
SECRET_KEY: dbcjqheupqjsuwsm
IS_DOCKER: is_docker
ports:
- 8000:8000
# 首次使用请先初始化
command: /bin/bash -c "./Yearning install && ./Yearning run"
depends_on:
- mysql
restart: always

mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: ukC2ZkcG_ZTeb
MYSQL_DATABASE: yearning
MYSQL_USER: yearning
MYSQL_PASSWORD: ukC2ZkcG_ZTeb
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
volumes:
- ./data/mysql:/var/lib/mysql

# 默认账号:admin,默认密码:Yearning_admin

使用下面命令启动容器。docker-compose 会自动拉取 Yearning 的镜像并启动 Yearning 服务,打开浏览器访问 http://IP:8000,同样按照之前步骤完成初始化配置和使用:

1
docker-compose up -d

常见问题

无法访问 Yearning时:

  1. 检查防火墙是否阻止了端口 8000 的访问;
  2. 检查 Yearning 是否在正确的 IP 和端口上运行。

数据库连接问题:

  1. 确保配置文件中的数据库用户名、密码、主机正确;
  2. 确认 MySQL 允许 Yearning 连接,可以在 MySQL 中执行 GRANT 语句,确保正确权限。
❌