如何在CentOS 8上的MariaDB 10.5.5-MariaDB中为root重置密码?

时间:2020-09-13 15:03:09

标签: mysql mariadb centos8

我尝试了Resetting root password for mariadb does not work

中的建议

ERROR 1698 (28000): Access denied for user 'root'@'localhost'仅谈论Ubuntu,而不是centos 8

可以使用mysql -u root登录,但是root表中没有用户mysql

因此,set password语句使用0 affected rows.

执行

即使在服务器重启后也无法正常工作。

1 个答案:

答案 0 :(得分:0)

从ssh登录到centos服务器。然后停止mysqld服务,并使用—skip-grant-tables选项运行mysqld_safe使其处于不安全模式并重置密码。然后,在不安全模式下,使用不带任何-u或-p参数的mysql命令登录到mysql服务器。然后更新root密码flush特权,然后从msyql控制台退出。然后使用mysqladmin停止mysql服务器,它将要求输入密码并提供最近保存的新密码。然后最后启动mysqld服务。

$ systemctl stop mysqld
$ mysqld_safe --skip-grant-tables &
$ mysql
mysql> UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ mysqladmin -u root -p shutdown
$ systemctl start mysqld

编辑:---------------------------------------

$ sudo systemctl stop mariadb
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
$ mysql -u root
MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
MariaDB [(none)]>  FLUSH PRIVILEGES;
MariaDB [(none)]> exit;
$ sudo kill `/var/run/mariadb/mariadb.pid`
$ sudo systemctl start mariadb