Gogs 报 500 错误,Mysql 密码到期了?

前记

自用代码管理 gogs 和对应的 mysql 都部署在家用群晖的 Docker 上,今早发现 gogs500 错误无法访问,经过查询日志确定是 mysql 5.7 密码已过期,如下错误

1
Error 1862: Your password has expired. To log in you must change it using a client that supports expired passwords.

解决

ssh 登陆到群晖

1
ssh admin@192.168.1.x -p xx22

首先我们需要对群晖 admin 账户提权

1
sudo su

然后进入对应的 docker 容器并登陆到 mysql 客户端,这里说明一下客户端的密码是不会过期的

1
docker exec -it mysql1 mysql -uroot -ppassword

然后重置密码

1
set password = password('newpassword');

接下来刷新权限

1
flush privileges;

最后设置密码永不过期

1
SET GLOBAL default_password_lifetime = 0;

到此问题就解决了,又可以愉快的访问 gogs