TiDB数据库修改数据库root密码
在 TiDB 中修改 root 密码有多种方法,与 MySQL 的方式非常相似。以下是几种常用的方法:
方法一:使用 SET PASSWORD 语句(推荐)
在已经连接到 TiDB 的情况下,执行以下 SQL:
|
1 |
SET PASSWORD FOR 'root'@'%' = '你的新密码'; |
或者更精确地指定用户主机:
|
1 |
SET PASSWORD FOR 'root'@'localhost' = '你的新密码'; |
示例:
|
1 |
SET PASSWORD FOR 'root'@'%' = 'MyNewSecurePassword123!'; |
方法二:使用 ALTER USER 语句(MySQL 5.7+ 兼容方式)
|
1 |
ALTER USER 'root'@'%' IDENTIFIED BY '你的新密码'; |
或者:
|
1 |
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; |
示例:
|
1 |
ALTER USER 'root'@'%' IDENTIFIED BY 'MyNewSecurePassword123!'; |
方法三:使用 UPDATE 语句(直接修改系统表)
注意: 这种方法需要额外执行 FLUSH PRIVILEGES;,不建议常规使用。
|
1 2 |
UPDATE mysql.user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root' AND Host = '%'; FLUSH PRIVILEGES; |
方法四:使用 tiup 工具重置密码(如果忘记密码)
如果您忘记了 root 密码,可以通过 TiUP 工具来重置:
-
停止集群:
1tiup cluster stop my-tidb
使用跳过授权表的方式启动集群:
|
1 |
tiup cluster start my-tidb --skip-grant-table |
连接 TiDB(此时不需要密码):
|
1 |
mysql -h 127.0.0.1 -P 4000 -u root |
执行密码修改命令:
|
1 2 |
ALTER USER 'root'@'%' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES; |
退出 MySQL 并正常重启集群:
|
1 2 |
exit tiup cluster restart my-tidb |
密码策略建议
为了安全起见,建议使用强密码:
-
至少 12 个字符
-
包含大写字母、小写字母、数字和特殊字符
-
避免使用常见单词或个人信息
示例强密码: T1db@Secure#2024!
验证密码是否修改成功
修改密码后,使用新密码重新连接验证:
|
1 |
mysql -h 127.0.0.1 -P 4000 -u root -p |
输入新密码,如果能成功连接,说明密码修改成功。
总结: 对于常规的密码修改,推荐使用 方法一 或 方法二 的 SET PASSWORD 或 ALTER USER 语句,这是最标准和安全的方式。只有在忘记密码的特殊情况下才需要使用跳过授权表的方法。