【问题标题】:Resetting root password for mariadb does not work重置 mariadb 的 root 密码不起作用
【发布时间】:2019-12-20 14:23:54
【问题描述】:

我正在尝试重置 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');

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

我对此感到非常沮丧。

【问题讨论】:

  • arch specific how to,在运行 mysqld_safe 之前你是否先停止了服务?。

标签: mysql mariadb


【解决方案1】:

你需要做的是:

用类似的东西停止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 子句,以便您使用相同的密码更新所有用户!

【讨论】:

  • 正如我所提到的,我确实做到了,但它没有奏效。关于为什么的任何想法?查询说它执行成功
  • 你看到我的粗体字了吗?您错过了查询中的 where 子句。之后你是否也重启了mysql实例?
  • 我看到了,这是我以前的变体之一,但为了以防万一,我又试了一次。我确实重新启动了它,但方式略有不同,因为我使用的是 kubernetes 并且容器中没有 systemd
  • 问题是,执行上述操作后,即使我在安全模式下尝试使用新密码登录,它也不接受
  • @TomKlino 如果mysql.user 表中没有用户,则必须使用CREATE USER 命令添加用户,请参阅dev.mysql.com/doc/refman/8.0/en/creating-accounts.html
猜你喜欢
  • 2015-08-26
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 2020-12-31
  • 2018-06-18
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多