从踩坑到精通:Yearning安装全流程错误解决方案

从踩坑到精通:Yearning安装全流程错误解决方案

【免费下载链接】Yearning cookieY/Yearning: 这是一个用于SQL注入检测和防御的工具。适合用于需要检测和防御SQL注入的场景。特点:易于使用,支持多种数据库,提供实时检测和防御功能。 【免费下载链接】Yearning 项目地址: https://gitcode.com/gh_mirrors/ye/Yearning

你是否在部署Yearning时遇到过"数据库连接失败"、"密钥错误"或"初始化超时"等问题?本文汇总了80%用户会遇到的安装障碍,通过10个实战案例+3套解决方案,让你1小时内完成SQL审计平台的搭建。读完本文你将掌握:Docker环境快速排错、配置文件关键参数解析、初始化失败的应急处理方案。

环境准备阶段:常见依赖问题

Docker版本兼容性

Yearning官方推荐使用Docker Compose v2+版本部署,但部分用户仍在使用v1版本导致编排失败。检查当前Docker版本:

docker-compose --version

若输出docker-compose version 1.x.x,需升级至v2:

# 卸载旧版本
sudo rm /usr/local/bin/docker-compose
# 安装v2版本
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

端口占用冲突

默认情况下,Yearning使用8000端口。可通过以下命令检查端口占用情况:

netstat -tuln | grep 8000

若端口已被占用,需修改docker-compose.yml中的端口映射:

ports:
  - "8080:8000"  # 将左侧8080替换为未占用端口

配置文件解析:避免90%的初始化错误

密钥长度问题

conf.toml.templateSecretKey必须为16位字符,错误示例:

SecretKey = "short"  # 错误:长度不足

正确配置:

SecretKey = "dbcjqheupqjsuwsm"  # 16位随机字符串

可使用以下命令生成随机密钥:

head -c 16 /dev/urandom | base64 | tr -dc 'a-zA-Z0-9'

数据库连接参数

Docker部署时需确保docker-compose.yml中的数据库参数与实际环境匹配:

environment:
  MYSQL_USER: yearning        # 数据库用户名
  MYSQL_PASSWORD: your_secure_password  # 替换为实际密码
  MYSQL_ADDR: mysql:3306      # 容器名:端口
  MYSQL_DB: yearning          # 数据库名

Docker部署实战:从命令到排错

初始化失败解决方案

执行docker-compose up后遇到install命令失败,可单独运行初始化命令排查:

docker-compose run --rm yearning ./Yearning install

常见错误及修复:

  1. 数据库连接拒绝:检查MySQL服务是否正常启动,可通过docker-compose logs mysql查看数据库日志
  2. 权限不足:确保MySQL用户有足够权限,执行GRANT ALL PRIVILEGES ON yearning.* TO 'yearning'@'%';
  3. 字符集错误:参考docker-compose.yml配置MySQL字符集参数

启动后无法访问

服务启动后访问http://localhost:8000无响应,可按以下步骤排查:

  1. 检查容器状态:
docker-compose ps  # 确保yearning和mysql容器都是up状态
  1. 查看应用日志:
docker-compose logs -f yearning
  1. 典型错误日志及解决:
    • listen tcp 0.0.0.0:8000: bind: address already in use:端口冲突,需修改端口映射
    • dial tcp 172.18.0.2:3306: connect: connection refused:数据库未就绪,可增加启动依赖等待

登录界面

成功部署后,访问8000端口将看到Yearning登录界面,默认账号:admin,密码:Yearning_admin

手动部署指南:非Docker环境解决方案

配置文件准备

从模板创建配置文件:

cp conf.toml.template conf.toml

修改conf.toml关键参数:

[Mysql]
Db = "Yearning_go"       # 数据库名
Host = "127.0.0.1"       # 数据库地址
Port = "3306"            # 数据库端口
Password = "your_password"  # 数据库密码
User = "root"            # 数据库用户

[General]
SecretKey = "dbcjqheupqjsuwsm"  # 16位密钥
Lang = "zh_CN"           # 中文界面

初始化与启动

# 初始化数据库
./Yearning install

# 启动服务
./Yearning run

若出现permission denied错误,需赋予执行权限:

chmod +x ./Yearning

功能验证:确保安装成功

登录系统后,建议进行以下验证:

  1. 访问仪表盘:确认系统状态正常

仪表盘

  1. 测试AI功能:在SQL查询界面使用文本转SQL功能

文本转SQL

  1. 创建测试工单:验证审批流程是否正常

审计工单

常见问题速查表

错误现象可能原因解决方案
初始化提示"数据库连接失败"MySQL服务未启动或参数错误检查conf.toml中MySQL参数,确保服务可访问
登录提示"token无效"SecretKey不匹配确保配置文件中SecretKey与初始化时一致
页面显示乱码语言配置错误修改conf.toml中Lang = "zh_CN"
AI功能无响应RpcAddr配置错误检查conf.toml中RpcAddr是否正确

总结与后续优化

通过本文介绍的方法,你已成功解决Yearning安装过程中的常见问题。建议部署完成后:

  1. 立即修改默认密码:进入"个人设置"修改admin密码
  2. 配置邮件通知:在"系统设置"中设置SMTP参数
  3. 定期备份数据:通过docker exec进入MySQL容器执行备份

如需深入学习Yearning功能,可参考README.zh-CN.md中的高级配置指南。收藏本文,下次遇到安装问题即可快速查阅解决方案!

【免费下载链接】Yearning cookieY/Yearning: 这是一个用于SQL注入检测和防御的工具。适合用于需要检测和防御SQL注入的场景。特点:易于使用,支持多种数据库,提供实时检测和防御功能。 【免费下载链接】Yearning 项目地址: https://gitcode.com/gh_mirrors/ye/Yearning

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值