从踩坑到精通: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.template中SecretKey必须为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
常见错误及修复:
- 数据库连接拒绝:检查MySQL服务是否正常启动,可通过
docker-compose logs mysql查看数据库日志 - 权限不足:确保MySQL用户有足够权限,执行
GRANT ALL PRIVILEGES ON yearning.* TO 'yearning'@'%'; - 字符集错误:参考docker-compose.yml配置MySQL字符集参数
启动后无法访问
服务启动后访问http://localhost:8000无响应,可按以下步骤排查:
- 检查容器状态:
docker-compose ps # 确保yearning和mysql容器都是up状态
- 查看应用日志:
docker-compose logs -f yearning
- 典型错误日志及解决:
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
功能验证:确保安装成功
登录系统后,建议进行以下验证:
- 访问仪表盘:确认系统状态正常
- 测试AI功能:在SQL查询界面使用文本转SQL功能
- 创建测试工单:验证审批流程是否正常
常见问题速查表
| 错误现象 | 可能原因 | 解决方案 |
|---|---|---|
| 初始化提示"数据库连接失败" | MySQL服务未启动或参数错误 | 检查conf.toml中MySQL参数,确保服务可访问 |
| 登录提示"token无效" | SecretKey不匹配 | 确保配置文件中SecretKey与初始化时一致 |
| 页面显示乱码 | 语言配置错误 | 修改conf.toml中Lang = "zh_CN" |
| AI功能无响应 | RpcAddr配置错误 | 检查conf.toml中RpcAddr是否正确 |
总结与后续优化
通过本文介绍的方法,你已成功解决Yearning安装过程中的常见问题。建议部署完成后:
- 立即修改默认密码:进入"个人设置"修改admin密码
- 配置邮件通知:在"系统设置"中设置SMTP参数
- 定期备份数据:通过
docker exec进入MySQL容器执行备份
如需深入学习Yearning功能,可参考README.zh-CN.md中的高级配置指南。收藏本文,下次遇到安装问题即可快速查阅解决方案!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考







