tidb4.0 现在所有的用户都登不了TIDB,root用户都只能看到information_schema一个数据库?

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:Release Version: v4.0.0
    Edition: Community
    Git Commit Hash: 689a6b6439ae7835947fcaccf329a3fc303986cb
    Git Branch: heads/refs/tags/v4.0.0
    UTC Build Time: 2020-05-28 01:37:40
    GoVersion: go1.13
    Race Enabled: false
    TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
    Check Table Before Drop: false

invalid config TiDB run with skip-grant-table need root privilege
load config file: /data/tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /data/tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /data/tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /data/tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /data/tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /data/tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
{“level”:“warn”,“ts”:“2020-08-19T07:38:55.072+0800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoint://client-5ecaa35d-c017-4711-ae72-4e4497197203/192.1
68.1.250:2379”,“attempt”:0,“error”:“rpc error: code = Canceled desc = context canceled”}
{“level”:“warn”,“ts”:“2020-08-19T07:38:55.072+0800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoint://client-5ecaa35d-c017-4711-ae72-4e4497197203/192.1
68.1.250:2379”,“attempt”:0,“error”:“rpc error: code = Canceled desc = grpc: the client connection is closing”}
{“level”:“warn”,“ts”:“2020-08-19T07:38:55.072+0800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoint://client-5ecaa35d-c017-4711-ae72-4e4497197203/192.1
68.1.250:2379”,“attempt”:1,“error”:“rpc error: code = Canceled desc = grpc: the client connection is closing”}
{“level”:“warn”,“ts”:“2020-08-19T07:38:55.072+0800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoint://client-5ecaa35d-c017-4711-ae72-4e4497197203/192.1
68.1.250:2379”,“attempt”:0,“error”:“rpc error: code = Canceled desc = grpc: the client connection is closing”}
{“level”:“warn”,“ts”:“2020-08-19T07:38:55.072+0800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoint://client-5ecaa35d-c017-4711-ae72-4e4497197203/192.1
68.1.250:2379”,“attempt”:1,“error”:“rpc error: code = Canceled desc = grpc: the client connection is closing”}
{“level”:“warn”,“ts”:“2020-08-19T07:38:55.087+0800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoint://client-5ecaa35d-c017-4711-ae72-4e4497197203/192.1
68.1.250:2379”,“attempt”:0,“error”:“rpc error: code = Canceled desc = grpc: the client connection is closing”}
{“level”:“warn”,“ts”:“2020-08-19T07:38:55.087+0800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoint://client-5ecaa35d-c017-4711-ae72-4e4497197203/192.1
68.1.250:2379”,“attempt”:1,“error”:“rpc error: code = Canceled desc = grpc: the client connection is closing”}

  • 【问题描述】:昨晚凌晨有一个tidb节点突然下线,现在所有的用户都登不了TIDB,root用户都只能看到information_schema一个数据库。请问这个问题该怎么解决?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

  1. 出问题前具体都做了什么操作?
  2. 出问题前的日志麻烦也上传下
  3. 麻烦截屏显示下使用命令行登录的报错,多谢。
  4. invalid config TiDB run with skip-grant-table need root privilege , skip-grant-table 是出问题后自己加的吗?先去掉看下,最初出问题后的报错是什么?

hi,
1、检查当前集群的状态,其他节点是否正常

2、tidb-server 目前在集群中有几个呢,如果是 tiup 部署,提供下 display 的结果,多个 tidb-server 挂掉其中一个如果有 LB 其他tidb-server 会继续对外提供服务。

3、可以尝试通过直连存活的 tidb-server 节点看是否可以访问,

4、提供下 tidb log

现在集群的节点都起来了,只是用户还是连接不上去

刚刚通过 tispark, 直连tikv,到mysql.user表中,就只发现了一个用户,而且这个用户所有的权限都为N,同时db表,也是空的。连root用户都没有了

tiup cluster edit-config clustername
看下 tidb 的参数设置,是否有 skip-grant-table 去掉,并执行 tiup cluster reload clustername -R tidb,登录验证看下。

我去掉了,现在可以正常进入集群,但是用户还是登陆不了

show create table mysql.user\G

select user,host from mysql.user;

创建辛苦用户看下是否可以正常登录
create user ‘asktug_test’@‘host’;
grant select on . to ‘asktug_test’@‘host’;

现在是登陆不了,没有任何权限,唯一的账号只能看到information_schema,所有创建不了

辛苦使用 mysql -uroot -p -Pport -hhost 登录试下。


root用户返回的是这个

mysql -uroot -p -Pport -hhost -p

大佬,情况是这样的,今天凌晨tidb节点挂掉了,早上我们上线的时候就发现所有的账号都登录不了。1,第一步 我们先恢复了挂掉的节点,让节点上线。2. 后来我们打算登入数据库看一下,发现用户登录不了,我们分析 以为是root用户的密码被改了,所以先从重置TIDB密码来做,添加了skip-grant-table 参数,配置在其中一个tidb的其他节点中,先stop 该tidb节点,但重启配置了skip-grant-table总是不生效,然后去掉了配置,集群正常启动。3,后来发现通过tispark可以直接查 tikv mysql.user表,表中只有一条记录,且权限全为N,同时root用户也没了。现在没办法通过jdbc来查库。

线上数据库修改 root 密码这个方向不知道是否正确,还是贵司有什么特殊的业务或者大权限用户在哈。

skip-grant-table 参数配置之后需要使用 root 用户来启动 tidb-server,tiup 配置方式为:

tidb_servers:
  config:
    security.skip-grant-table: true

重要的还是请确认下是否做过什么操作呢?
辛苦上传下挂掉 tidb-server 当时的 tidb log,看下原因。

当前问下辛苦展示下 mysql.user 的表结构:
show create table mysql.user\G

这个skip-grant-table 具体是配置哪个文件下

tispark 貌似不支持show create table

只能通过desc的命令来查看表结构

以上操作均在 mysql -uroot -p -Pport -hhost 中进行哈。


然后执行 tiup cluster reload clustername -N ip:port 是参数生效,执行 tiup cluster stop -N ip:port 停止这个 tidb 节点,并且使用 root 用户启动该 tidb-server,使用 ps -ef|grep tidb-server 确认已经使用 root 启动该 tidb-server,创建新的用户和权限,不要覆盖以前的用户哈,配置下应用,先恢复应用。


这个命令 执行最后报错了 tiup cluster reload xsyx-cluster -N 192.168.1.249:4000

切换到root用户执行该命令也报错

同时我这边验证了一下,从248 ssh 到249 是没有问题的
image

您好,可以试试把 .tiup/bin/root.json 和 .tiup/manifests 删了(删之前备份一下),再重新执行这个命令。