重置mariadb的root密码不起作用 [英] Resetting root password for mariadb does not work
问题描述
我正在尝试重置mariadb数据库的根密码,到目前为止,我已经按照教程的每个变化进行了设置,因此,每次尝试使用新密码登录时,它都不会接受.
I am trying to reset the root password for a mariadb database, followed every variation of tutorial to do so I've found so far, and every time I try to log in with the new password, it does not accept it.
主要是我一直在做的事情:
Mainly, this is what I've been doing:
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root -e 'use mysql; update user SET PASSWORD=PASSWORD("jkjkjkjjk"); flush privileges;'
我还尝试在 udpate
命令之前添加其他 flush特权;
,并将其从末尾删除,重置密码的其他变体,例如为'root'@'localhost'设置密码= PASSWORD('new_password');
I also tried adding an additional flush privileges;
before the udpate
command, removing it from the end as well, different variations for reset password, such as SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
我正在与galera一起使用mariadb,并在kubernetes statefulset上运行(如果相关).mariadb的版本是 mysqld 10.3.21-MariaDB-1:10.3.21 + maria〜bionic
I am using mariadb with galera, running on kubernetes statefulset, if relevant.
version of mariadb is mysqld 10.3.21-MariaDB-1:10.3.21+maria~bionic
对此我感到非常沮丧.
推荐答案
您需要执行的操作如下:
what you have to do is the following:
通过类似以下方式停止mysql服务:
stop the mysql service with something like:
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子句,因此您将使用相同的密码更新所有用户!
This assuming you are using a linux machine and you have access to the shell. Note that in your update query you are also missing the where clause so that you are updating ALL your users with the same password!
这篇关于重置mariadb的root密码不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!