MariaDB密码重置无法运行。

8

我正在运行MariaDB,尝试重置密码,但无法成功。

[root@osdial-99a8c941 ~]# mysqld_safe --skip-grant-tables --skip-networking &
[1] 11125

请设置密码:

[root@osdial-99a8c941 ~]# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.37-MariaDB-wsrep-log MariaDB Stylite Build (GPL), wsrep_25.10.r3980

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=PASSWORD("new-password") where User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

MariaDB [mysql]> select * from user;
Empty set (0.00 sec)

如果你查看user表,它仍然是空的 :(
即使我尝试创建账户,但是出现了以下错误:
MariaDB [mysql]> CREATE USER 'root'@'localhost' IDENTIFIED BY 'new-password';
ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement

我做错了什么吗?
2个回答

8

FLUSH PRIVILEGES;命令用于加载密码表。在执行UPDATEGRANT命令后需要执行该命令。

详见用户手册。(MariaDB 和 MySQL 在这个领域应该是相同的。)


1
实际上,这应该在updategrant之后完成,因为它会刷新内存缓存,并从表中重新加载权限。根据MySQL文档 - Matt Clark
1
迟来的修复答案,以符合Matt的评论。 - Rick James

0
如果你仍然无法解决问题,这里是我使用的命令,它可以修复MySQL中的密码不工作问题,在执行命令后,你可以输入自己的密码。
apt-get install apt-transport-https curl

curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc 'https://mariadb.org/mariadb_release_signing_key.asc'

sh -c "echo 'deb https://mirrors.xtom.com/mariadb/repo/10.8/debian bullseye main' >>/etc/apt/sources.list"

apt-get update

apt-get install mariadb-server

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接