tidb忘记root密码
背景介绍
目前本地的Tidb集群是通过 tiup 命令进行部署的。
具体用法参考 使用 TiUP 部署 TiDB 集群
大致的步骤有
- 安装 tiup
- 利用 tiup 安装 cluster 组件
- 生产集群 模板
tiup cluster template > topology-xxx.yaml
- 修改模板,配置我们需要的组件。比如 tidb-server/tidb-pd/tidb-tikv/tidb-cdc 等等
- tiup 检查集群模板有效性
tiup cluster check ./topology-xxx.yaml
- 集群部署
1 | tiup cluster deploy tidb-cluster-name v6.1.0 ./topology-xxx.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa] |
- 查看安装的集群列表
1 | tiup list |
- 查看 具体的集群情况
1 | tiup cluster display tidb-cluster-name |
- 启动集群
1 | tiup cluster start tidb-cluster-name [--init] |
- 最终再查看集群状态
1 | tiup cluster display tidb-cluster-name |
扩展
利用tiup安装集群之后,tiup 是可以管理(stop/start等)集群的。但是这个管理
是针对整个集群而言的。不能只是管理集群中的某个组件,比如 tidb-pd
在每个组件主机节点上。tiup 会自动配置 systemctl
管理的相关 service,比如 tidb-server 节点,会自动配置 tidb-4000.service
,
这样如果我们只是相对 tidb-server做一些变更,然后启动、停止的时候就可以直接使用 systemctl stop/start tidb-4000.service
忘记root密码操作
核心其实和MySQL一样,都是需要通过配置 skip-grant-table = true
来跳过密码认证来登录,成功之后修改密码,进行权限刷新。在回滚和重启即可。
步骤
1、登录 tidb-server 节点,修改 tidb-deploy/conf/tidb.toml 添加如下配置
1 | [security] |
2、使用 systemctl 停止 tidb-4000.service
1 | # 因为修改了配置,所以需要先reload |
3、需要手动使用 run_tidb.sh
用 root 用户
临时启动
这里也是和MySQL不一定的地方所在, tiup安装集群之后,各个组件都是使用tidb 这个用户启动的。
root启动tidb-server
1 | bash tidb-deploy/scripts/run_tidb.sh |
4、登录tidb-server进行密码修改并刷新权限
1 | # 登录 |
5、修改 tidb-deploy/conf/tidb.toml
进行配置回滚
6、停止 run_tidb.sh
脚本
7、使用 systemctl 启动 tidb-4000.service
1 | # 因为修改了配置,所以需要先reload |
8、最终登录验证
这个时候需要密码,使用新配置密码即可登录