[转帖]TiDB之修改root密码

tidb,修改,root,密码 · 浏览次数 : 0

小编点评

**内容生成时需要带排版** **1. 排版文本** * 将所有内容排版到一个文本文件中。 * 使用文本格式的排版工具,例如“美文本”或“排版工具”。 **2. 排版代码** * 将所有代码排版到一个代码文件中。 * 使用代码格式的排版工具,例如“美代码”或“代码格式工具”。 **3. 排版配置文件** * 将所有配置文件排版到一个配置文件中。 * 使用配置文件格式的排版工具,例如“美配置文件”或“配置文件格式工具”。 **4. 排版数据** * 将所有数据排版到一个数据文件中。 * 使用数据格式的排版工具,例如“美数据”或“数据格式工具”。 **5. 排版表格** * 将所有表格排版到一个表格文件中。 * 使用表格格式的排版工具,例如“美表格”或“表格格式工具”。 **6. 排版图像** * 将所有图像排版到一个图像文件中。 * 使用图像格式的排版工具,例如“美图像”或“图像格式工具”。 **7. 排版视频** * 将所有视频排版到一个视频文件中。 * 使用视频格式的排版工具,例如“美视频”或“视频格式工具”。

正文

https://www.modb.pro/db/337530

 

当忘记TiDB root 密码时,可以通过设置skip-grant-table参数来跳过密码验证,登录成功以后再修改root密码。

方法一:

修改tidb-server的配置文件

vi /tidb-deploy/tidb-4000/conf/tidb.toml
# WARNING: This file is auto-generated. Do not edit! All your modification will be overwritten!
# You can use 'tiup cluster edit-config' and 'tiup cluster reload' to update the configuration
# All configuration items you want to change can be added to:
# server_configs:
#   tidb:
#     aa.b1.c3: value
#     aa.b2.c4: value
[security]
skip-grant-table = true
~

直接修改配置文件需要重启tidb-server服务才能生效 连接到中控机,使用tiup关闭该节点的tidb-server服务

[root@node1 ~]# tiup cluster stop  tidb-test -N 192.168.233.82:4000
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.9.1/tiup-cluster /root/.tiup/components/cluster/v1.9.1/tiup-cluster stop tidb-test -N 192.168.233.82:4000
Will stop the cluster tidb-test with nodes: 192.168.233.82:4000, roles: .
Do you want to continue? [y/N]:(default=N) y

+ [ Serial ] - SSHKeySet: privateKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa, publicKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa.pub
....
+ [ Serial ] - StopCluster
Stopping component tidb
      Stopping instance 192.168.233.82
      Stop tidb 192.168.233.82:4000 success
Stopping component node_exporter
Stopping component blackbox_exporter
Stopped cluster `tidb-test` successfully

由于添加了skip-grant-table = true 无法直接通过tiup来启动192.168.233.82上的 tidb-server

[root@node1 ~]# tiup cluster start  tidb-test -N 192.168.233.82:4000
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.9.1/tiup-cluster /root/.tiup/components/cluster/v1.9.1/tiup-cluster start tidb-test -N 192.168.233.82:4000
Starting cluster tidb-test...
+ [ Serial ] - SSHKeySet: privateKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa, publicKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa.pub
....
+ [ Serial ] - StartCluster
Starting component tidb
      Starting instance 192.168.233.82:4000

Error: failed to start tidb: failed to start: 192.168.233.82 tidb-4000.service, please check the instance's log(/tidb-deploy/tidb-4000/log) for more detail.: timed out waiting for port 4000 to be started after 2m0s

Verbose debug logs has been written to /root/.tiup/logs/tiup-cluster-debug-2022-03-05-07-50-08.log.

官方文档说明:设置 skip-grant-table 之后,启动 TiDB 进程会增加操作系统用户检查,只有操作系统的 root 用户才能启动 TiDB 进程。

查看tidb-server的日志

[root@node2 log]# tailf -n 10 tidb_stderr.log
load config file: /tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
load config file: /tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege

连接到tidb-server所在的服务器,手工执行启动脚本

/tidb-deploy/tidb-4000/scripts/run_tidb.sh
再打开一个新会话,就可以免密登录了
[root@node2 ~]# mysql -h 192.168.233.82 -P 4000 -uroot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.25-TiDB-v5.0.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

为一个已存在的账户修改密码,可以通过 SET PASSWORD FOR 或者 ALTER USER 语句完成:

SET PASSWORD FOR 'root'@'%' = 'xxx';

或者:

ALTER USER 'test'@'localhost' IDENTIFIED BY 'mypass';

修改成功以后,在执行启动脚本的会话里执行ctrl+c,然后删除添加的参数

再使用tiup重新启动tidb-server

[root@node1 ~]# tiup cluster start  tidb-test -N 192.168.233.82:4000
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.9.1/tiup-cluster /root/.tiup/components/cluster/v1.9.1/tiup-cluster start tidb-test -N 192.168.233.82:4000
Starting cluster tidb-test...
+ [ Serial ] - SSHKeySet: privateKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa, publicKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa.pub
.....
+ [ Serial ] - StartCluster
Starting component tidb
      Starting instance 192.168.233.82:4000
      Start instance 192.168.233.82:4000 success
Starting component node_exporter
      Starting instance 192.168.233.82
      Start 192.168.233.82 success
Starting component blackbox_exporter
      Starting instance 192.168.233.82
      Start 192.168.233.82 success
+ [ Serial ] - UpdateTopology: cluster=tidb-test
Started cluster `tidb-test` successfully

因为密码信息是存储再TiKV中的,所以当密码修改成功以后,所有的TiDB-server节点都可以使用新密码登录

方法二:

使用tiup 来修改配置文件

tiup cluster edit-config tidb-test

global:
user: tidb
ssh_port: 22
ssh_type: builtin
deploy_dir: /tidb-deploy
data_dir: /tidb-data
os: linux
arch: amd64
server_configs:
tidb:
security.skip-grant-table: true
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
deploy_dir: /tidb-deploy/monitor-9100

下面是添加的内容(注意折行)

server_configs:
tidb:
security.skip-grant-table: true

添加完成以后,需要执行reload语句来同步到节点上去。

Please check change highlight above, do you want to apply the change? [y/N]:(default=N) y
Applying changes...
Applied successfully, please use `tiup cluster reload tidb-test [-N <nodes>] [-R <roles>]` to reload config.
[root@node1 ~]# tiup cluster reload tidb-test
 - Generate config pd -> 192.168.233.83:2379 ... Done
 - Generate config tikv -> 192.168.233.81:20160 ... Done
 - Generate config tikv -> 192.168.233.82:20160 ... Done
 - Generate config tikv -> 192.168.233.83:20160 ... Done
 - Generate config tidb -> 192.168.233.82:4000 ... Error
 - Generate config tidb -> 192.168.233.83:4000 ... Error
 - Generate config prometheus -> 192.168.233.81:9090 ... Done
 - Generate config grafana -> 192.168.233.81:3000 ... Done
 - Generate config alertmanager -> 192.168.233.81:9093 ... Done

Error: init config failed: 192.168.233.83:4000: executor.ssh.execute_failed: Failed to execute command over SSH for 'tidb@192.168.233.83:22' {ssh_stderr: load config file: /tidb-deploy/tidb-4000/conf/tidb.toml
invalid config TiDB run with skip-grant-table need root privilege
, ssh_stdout: , ssh_command: export LANG=C; PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin /tidb-deploy/tidb-4000/bin/tidb-server --config-check --config=/tidb-deploy/tidb-4000/conf/tidb.toml }, cause: Process exited with status 1: check config failed

由于权限的问题,并不能是参数生效,不过tidb-server节点还是可用状态

[root@node1 ~]# tiup cluster display tidb-test
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.9.1/tiup-cluster /root/.tiup/components/cluster/v1.9.1/tiup-cluster display tidb-test
Cluster type:       tidb
Cluster name:       tidb-test
Cluster version:   v5.0.0
Deploy user:       tidb
SSH type:           builtin
Dashboard URL:     http://192.168.233.83:2379/dashboard
ID                   Role         Host           Ports       OS/Arch       Status Data Dir                     Deploy Dir
--                    ----          ----            -----        -------       ------  --------                      ----------
192.168.233.81:9093   alertmanager  192.168.233.81  9093/9094   linux/x86_64 Up     /tidb-data/alertmanager-9093 /tidb-deploy/alertmanager-9093
192.168.233.81:3000   grafana       192.168.233.81  3000         linux/x86_64 Up      -                             /tidb-deploy/grafana-3000
192.168.233.81:2379   pd            192.168.233.81  2379/2380   linux/x86_64 Up     /tidb-data/pd-2379           /tidb-deploy/pd-2379
192.168.233.82:2379   pd            192.168.233.82  2379/2380   linux/x86_64 Up|L   /tidb-data/pd-2379           /tidb-deploy/pd-2379
192.168.233.83:2379   pd            192.168.233.83  2379/2380   linux/x86_64 Up|UI   /tidb-data/pd-2379           /tidb-deploy/pd-2379
192.168.233.81:9090   prometheus    192.168.233.81  9090         linux/x86_64 Up     /tidb-data/prometheus-9090   /tidb-deploy/prometheus-9090
192.168.233.82:4000   tidb          192.168.233.82  4000/10080   linux/x86_64 Up      -                             /tidb-deploy/tidb-4000
192.168.233.83:4000   tidb          192.168.233.83  4000/10080   linux/x86_64 Up      -                             /tidb-deploy/tidb-4000
192.168.233.81:20160 tikv          192.168.233.81  20160/20180 linux/x86_64 Up     /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.168.233.82:20160 tikv          192.168.233.82  20160/20180 linux/x86_64 Up     /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.168.233.83:20160 tikv          192.168.233.83  20160/20180 linux/x86_64 Up     /tidb-data/tikv-20160         /tidb-deploy/tikv-20160

还是需要跟方法一样,将一个tidb-server节点关闭以后,手动使用root用户执行启动脚本。

与[转帖]TiDB之修改root密码相似的内容:

[转帖]TiDB之修改root密码

https://www.modb.pro/db/337530 当忘记TiDB root 密码时,可以通过设置skip-grant-table参数来跳过密码验证,登录成功以后再修改root密码。 方法一: 修改tidb-server的配置文件 vi /tidb-deploy/tidb-4000/con

[转帖]tidb之旅——tidb架构选择

https://zhuanlan.zhihu.com/p/641650168 前言 从4月份开始利用tidb改造了我们公司bi系统。这个过程中,我感觉到了tidb的强大。也打算记录一下整个改造过程。我打算从4个方面来记录这个改造过程。tidb架构选择,dm工具的使用——这两个部分还是tidb6.5.

[转帖]TiDB 统计数据库占用大小的N种方法

TiDB之路2022-03-06 3896 前言 TiDB 如何统计数据库占用空间大小 四种方法 方法一 TiDB 统计数据库占用大小的第一种方法是监控。通过查看 {cluster-name} - Overview,可以查看Current storage size面板,获取当前集群已用数据库空间大小

[转帖]TiDB损坏多副本之有损恢复处理方法

https://tidb.net/blog/b1ae4ee7 TiDB分布式数据库采用多副本机制,数据副本通过 Multi-Raft 协议同步事务日志,确保数据强一致性且少数副本发生故障时不影响数据的可用性。在三副本情况下,单副本损坏可以说对集群没什么影响,但当遇到多副本损坏的损坏丢失的时候,如何快

[转帖]数据库系列之TiDB存储引擎TiKV实现机制

https://zhuanlan.zhihu.com/p/27275483 TiDB存储引擎TiKV是基于RocksDB存储引擎,通过Raft分布式算法保证数据一致性。本文详细介绍了TiKV存储引擎的实现机制和原理,加深对TiDB底层存储架构的理解。 1、TiDB存储引擎TiKV TiDB存储引擎T

[转帖]数据库系列之TiDB存储引擎TiKV实现机制

TiDB存储引擎TiKV是基于RocksDB存储引擎,通过Raft分布式算法保证数据一致性。本文详细介绍了TiKV存储引擎的实现机制和原理,加深对TiDB底层存储架构的理解。 1、TiDB存储引擎TiKV TiDB存储引擎TiKV是分布式的key-value存储引擎,它是一种高度分层的架构,通过Ra

[转帖]038-拯救大兵瑞恩之 TiDB 如何在 TiKV 损坏的情况下恢复

https://tidb.net/blog/4b5451bb?utm_source=tidb-community&utm_medium=referral&utm_campaign=repost#%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99 很喜欢TiDB的设计哲学,比如,

[转帖]【SOP】最佳实践之 TiDB 业务写变慢分析

https://zhuanlan.zhihu.com/p/647831844 前言 在日常业务使用或运维管理 TiDB 的过程中,每个开发人员或数据库管理员都或多或少遇到过 SQL 变慢的问题。这类问题大部分情况下都具有一定的规律可循,通过经验的积累可以快速的定位和优化。但是有些情况下不一定很好排查

[转帖]018、数据库管理之TiDB升级

升级 使用TiUP进行补丁升级(HotFix)版本升级流程升级准备-更新TiUP升级准备- 编辑TiUP Cluster升级准备- 集群监控状态检查升级TiDB 集群验证TiDB集群升级结果升级常见问题 使用TiUP进行补丁升级(HotFix) -R : 所有 -N : 指定的节点 升级集群上的所有

[转帖]002、体系结构之TiDB Server

TiDB Server 1、TiDB总览1.1、TiDB Server架构1.2、TiDB Server 主要功能: 2、SQL语句处理语句的解析和编译SQL层协议层上下文解析层逻辑优化器物理优化器本地执行器分布式执行器 3、如何将表的数据转成kv形式4、在线DDL相关模块5、GC机制与相关模块6、