tidb root用户被锁了

【 TiDB 使用环境`】测试环境
【 TiDB 版本】 v4.0.15
【遇到的问题】root用户被锁了
【问题现象及影响】

错误日志:

[ERROR] [privileges.go:325] [“try to login a locked account”] [user=root] [host=%]

用mysql之类的客户端root能登录上去不?

先停止tidb

tiup cluster stop <cluster-name>

然后找到 tidb-server 的配置文件,一般默认是在

cd /tidb-deploy/tidb-4000/conf

vi tidb.toml

添加如下security

[security]
skip-grant-table = true

然后找到 tidb-server 的启动文件,具体在 deploy 目录下的script/run_tidb.sh,一般是

/tidb-deploy/tidb-4000/scripts

由于 tidb 限制了 skip 模式只能在操作系统 root 用户启动 tidb-server 才可以进行,所以要用 root 用户来执行上面的脚本

sudo sh run_tidb.sh

此时再次登录 tidb,就会发现不需要输入 root 密码了.

mysql -h 127.0.0.1 -P 4000 -u root

登录之后

SET PASSWORD FOR 'root'@'%' = 'xxx';
#或者
ALTER USER 'test'@'localhost' IDENTIFIED BY 'mypass';

重置成功之后记得恢复配置文件及启动脚本即可。

tiup cluster start <cluster-name>
2 个赞

和mysql一样的套路,改user表,再启动

是的,服务端就报刚才说的那个错误日志

是不是业务代码里用的root,确实死锁了?可以看下tidb的log

还有除root之外的超级账号吗,解锁试试

没有了。
我们这个测试环境是on k8s部署的

改系统表吧。

先改配置,跳过root密码验证,在登录后修改密码,然后在改回去配置

通过超级管理员,登录后台,进行解锁『对我有用』

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。