Yearning 是一个开源的 SQL 审核平台,专门为简化 SQL 管理流程设计,通常用于数据库的审核和自动化流程管理。Yearning 支持 MySQL 等数据库,提供 Web UI 来审核和管理 SQL 执行。
测试环境 {#测试环境}
在安装 Yearning 之前,请确保服务器环境满足以下条件。
操作系统:Ubuntu 或者 CentOS「本文默认为 Ubuntu」
数据库 MySQL 5.7 或 8.0。
运行语言:Yearning 是 Go 开发的,所以需要 Go 语言的环境。
安装 MySQL 数据库 {#安装-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 来简化安装过程,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时:
- 检查防火墙是否阻止了端口 8000 的访问;
- 检查 Yearning 是否在正确的 IP 和端口上运行。
数据库连接问题:
- 确保配置文件中的数据库用户名、密码、主机正确;
- 确认 MySQL 允许 Yearning 连接,可以在 MySQL 中执行
GRANT
语句,确保正确权限。