因为之前一个版本的 gitea 的后台管理界面无法查看,一直提示 500,我以为服务器被黑了,于是回来里面查各种日志,发现并没有异常,于是就去更新了下 gitea,但更新完启动丢给我这么一个错:
If you really know what you're doing, execute `UPDATE version SET version=189 WHERE id=1;`
作为一个开发我是能理解的,其实就是数据库升级失败了,我当初为了方便用了 sqlite3 作为数据库,但目前有点后悔,解决办法也不是没有,就是把 gitea.db 拉到本地使用 DB Browser for SQLite 进行数据库修改,就执行提示的那句:
UPDATE version SET version=189 WHERE id=1;
改完保存,替换服务器上的 db,然后重启容器,本以为可以访问就没什么问题,结果发现密码无法登录,我很确信不是我改了密码也不是谁换了我的密码,就是它的一个 bug,我尝试了自己修改数据库等等操作,最后还是去找官方的改密码方式了,很可惜找了半天都是错的,提示:
No help topic for 'change-password'
最后才发现这条命令才是对的:
gitea admin user --config "/abs/path/app.ini" change-password --username yourname --password "yourpwd"
使用方法,登录容器的 bash 后在 gitea 所在安装目录执行(可使用 find / -name gitea 查找)。
但值得一提的是,配置文件的绝对路径是必须的,而且里面的一个字段 RUN_USER = git
必须与当前执行终端的用户一致,使用容器 bash 时用户为 root ,会提示:
Expect user 'git' but current user is: root
解决办法就是把 ini 文件中的 RUN_USER = git
改为 RUN_USER = root
(记得改完密码还得改回来)。
吐槽一嘴,Gitea 是把双刃剑,好用是好用,但风险也不小,就在 fail2ban 的黑名单里,每周都能捕捉到十几个 ip 在攻击 Gitea ,所以不更新怕因为漏洞被拿下,更新又怕不稳定。
以上!
本站由以下主机服务商提供服务支持:
0条评论