[转帖]TiDB之修改root密码
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密码的更多相关文章
- RedHat/Centos修改root密码
Linux主机忘记密码,只要你能接触物理主机都可以修改root密码的! Redhat6.x 5.x / Centos6.x 5.x 01.开机-空格/enter 02.e-编辑模式 CentO ...
- ansible非root用户批量修改root密码
前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...
- phpmyadmin修改root密码
很多人利用phpmyadmin或者命令行来修改了mysql的root密码,重启 后发现mysql登录错误,这是为什么呢?修改mysql的root的密码要在mysql软件中mysql数据库里修改root ...
- mysql修改root密码和设置权限
整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR ' ...
- MySQL下载、安装和修改root密码
一.下载地址:MySQL_5.6.22_winx64_XiaZaiBa :http://rj.baidu.com/soft/detail/12585.html?ald 二.安装软件,安装到指定的路径, ...
- mysql给root开启远程访问权限,修改root密码
1.MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架 ...
- CentOS单用户模式下修改ROOT密码和grub加密
Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务.如果系统管理员需要进行系统维护或系统出现启动异常时 ...
- windows 环境下mysql 如何修改root密码
windows 环境下mysql 如何修改root密码 以windows为例: 无法开启服务,将mysql更目录下的data文件夹清空,然后调用 mysqld --initialize 开启mysql ...
- Mac OS X 10.9 Mavericks 修改root密码
Mac10.9忘记密码后有两种方式可以进去: 代码如下 复制代码 1.sudo passwd 重新输入密码即可,此方法修改了root的密码 代码如下 复制代码 2.sudo bash 输入当前用户 ...
- centos单用户模式:修改ROOT密码和grub加密
centos单用户模式:修改ROOT密码和grub加密 CentOSLinux网络应用配置管理应用服务器 Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 ...
随机推荐
- @Conditional+@Configuration有没有搞头?
日拱一卒,功不唐捐. 在了解 @Conditional 之前先花 10 秒钟复习一下 @Configuration 这个注解. @Configuration 是干什么? 是配合 @Bean 注解来配置 ...
- 用C#实现简单的线性回归
前言 最近注意到了NumSharp,想学习一下,最好的学习方式就是去实践,因此从github上找了一个用python实现的简单线性回归代码,然后基于NumSharp用C#进行了改写. NumSharp ...
- Java面试必考:什么是字节码?采用字节码的好处?
Java面试必考:什么是字节码?采用字节码的好处? 于哥你好,最近在java面试中被问答到什么是字节码?采用字节码的好处是什么?瞬间懵了,如果你连这个都不知道,我保证你面试GG! 首先说下Java的优 ...
- 启动多个redis进程
启动时指定端口 启动时指定端口可在一台服务器启动多个redis进程 cd /opt/work/redis/bin./redis-server ../conf/redis.conf --port 638 ...
- 使用 C# 在Word中插入图表
Word中的图表功能将数据可视化地呈现在文档中.这为展示数据和进行数据分析提供了一种方便且易于使用的工具,使作者能够以直观的方式传达信息.要通过C#代码来实现在Word中绘制图表,可以借助 Spire ...
- C# 创建Excel气泡图
气泡图(Bubble Chart)是可用于展示三个变量之间的关系.通过绘制x 值, y 值和大小值即可确定图表中气泡的坐标及大小.下面通过后端C#代码及VB.NET代码展示如何来实现在Excel中创建 ...
- 共赴元宇宙新纪元,华为云VR开发应用大赛总决赛倒计时7天!
摘要:"第三届华为云VR开发应用暨沈阳元宇宙开发应用大赛"总决赛即将于2月13日在沈阳市和平区揭幕. 由沈阳市和平区人民政府.华为技术有限公司共同主办的"第三届华为云VR ...
- 你眼中的程序员 VS 程序员眼中的自己,是时候打破代沟了
摘要:修电脑?格子衫?脱发?程序员被误解了怎么办?如何一句话向父母说明白你的工作? 有人说,你们程序员工作赚钱真简单,电脑上按按键盘就行了,一点也不辛苦. 有人说,程序员不懂生活,就知道天天对着电脑. ...
- 3个轻量级物联网新品实验,带您深度体验IoT开发
摘要:一键创建实验环境,开发者通过实验手册指导,快速体验华为云IoT服务,在云端即可实现云服务的实践.调测和验证等开发流程. 本文分享自华为云社区<物联网云上实验上新,带您深度体验华为云IoT服 ...
- 一文讲述G6实现流程图绘制的常用方法
摘要:G6 是一个图可视化引擎.它提供了图的绘制.布局.分析.交互.动画等图可视化的基础能力. 本文分享自华为云社区<会用这些的api,轻松绘制流程图--antv.g6流程图入门>,作者: ...