• 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

    • 集群部署

    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
    
    • 1

    扩展

    利用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 添加如下配置

    [security]
    skip-grant-table = true
    
    • 1
    • 2

    2、使用 systemctl 停止 tidb-4000.service

    # 因为修改了配置,所以需要先reload
    systemctl daemon-reload
    # 先停止,注意不是直接重启哦 (这里直接重启会失败)
    systemctl stop tidb-4000.service
    
    • 1
    • 2
    • 3
    • 4

    3、需要手动使用 run_tidb.shroot 用户 临时启动

    这里也是和MySQL不一定的地方所在, tiup安装集群之后,各个组件都是使用tidb 这个用户启动的。

    root启动tidb-server

    bash tidb-deploy/scripts/run_tidb.sh
    
    • 1

    4、登录tidb-server进行密码修改并刷新权限

    # 登录
    # mysql -h xxxx -u root -P 4000 -p
    
    # 修改密码
    use mysql;
    set password root@'%' = password('new-password-here');
    
    # 刷新权限
    flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5、修改 tidb-deploy/conf/tidb.toml 进行配置回滚

    6、停止 run_tidb.sh 脚本

    7、使用 systemctl 启动 tidb-4000.service

    # 因为修改了配置,所以需要先reload
    systemctl daemon-reload
    # 启动服务
    systemctl start tidb-4000.service
    
    • 1
    • 2
    • 3
    • 4

    8、最终登录验证

    这个时候需要密码,使用新配置密码即可登录


    如果觉得文章对你有所帮忙,欢迎点赞收藏,或者可以关注个人公众号 全栈运维

  • 相关阅读:
    最优装载问题--贪心算法
    Vben Admin 源码学习:项目初始化
    N皇后问题
    【LeetCode刷题-双指针】--259.较小的三数之和
    typeHandlers标签和plugins标签
    【大数据】Hadoop MapReduce与Hadoop YARN(学习笔记)
    神经同步性预测婚姻满意度
    基于 Three.js 的 3D 模型加载优化
    Sentinel热点参数限流
    JVM优化案例实战-手动模拟Young GC
  • 原文地址:https://blog.csdn.net/eaglecolin/article/details/126037497