重置 mariadb 的根密码不起作用



我正在尝试重置mariadb数据库的root密码,遵循了到目前为止我发现的教程的每个变体,每次我尝试使用新密码登录时,它都不接受它。

主要是,这是我一直在做的事情:

mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root -e 'use mysql; update user SET PASSWORD=PASSWORD("jkjkjkjjk"); flush privileges;'

我还尝试在udpate命令之前添加一个额外的flush privileges;,将其从末尾删除,重置密码的不同变体,例如SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

我正在使用带有galera的mariadb,在kubernetes statefulset上运行,如果相关的话。 MariaDB 的版本是mysqld 10.3.21-MariaDB-1:10.3.21+maria~bionic

我对此感到非常沮丧。

你需要做的是:

停止MySQL服务,如下所示:

sudo systemctl stop mariadb

然后重新启动它

sudo mysqld_safe --skip-grant-tables &

无需密码即可登录

mysql -u root

更新密码

use mysql;
update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
flush privileges;
exit

正常重启数据库

sudo systemctl start mariadb

这假设您使用的是 linux 机器并且您可以访问 shell。请注意,在您的更新查询中,您还缺少 where 子句,以便您使用相同的密码更新所有用户!

2022 年更新 - 如果您遇到错误 1348"密码不可更新">

MySQL 错误 1348 的解决方案 因此,您无法使用更新命令更新用户密码,要更新密码,请改用 ALTER 命令。像下面这样。

ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';

然后,您需要执行刷新权限以将以前的查询(上面的更改命令(提交到系统中,只需这样做即可。

flush privileges;

所以现在你有你的根密码1234。

最新更新