如何在Ubuntu 18.04中重置MariaDB root密码

时间:2020-07-27 12:59:30  来源:igfitidea点击:

本教程解释了如何在Ubuntu Server 18.04中重置MariaDB root密码。

Ubuntu上的MariaDB服务器不需要将作为root用户身份连接的密码,因为名为Unix_socket的服务器端插件用于通过Unix套接字文件对从本地主机连接的客户端进行身份验证。

如果要登录系统root帐户,则可以在没有密码的情况下登录MariaDB root帐户:

sudo -i
mysql

或者

sudo mysql

这也意味着其他系统用户无法登录MySQL root帐户:

mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

为MariaDB root用户设置密码

如果要实现密码身份验证而不是UNIX_SOCKET身份验证,则我们必须执行此操作。

从系统root帐户登录MySQL根控制台:

sudo mysql

运行update命令设置新密码:

UPDATE mysql.user set password=password('newpassword'), plugin='mysql_native_password' where user='root';

(这里'newpassword'是新的root密码)

刷新权限并退出MySQL控制台:

FLUSH PRIVILEGES;
quit;

现在我们为MariaDB root帐户设置了密码,我们现在可以使用新密码登录服务器。

mysql -u root -p

如果我们忘记了root密码

如果忘记了root密码,则忘记了root密码,则可以使用以下步骤重置它。

停止MariaDB服务器,如果服务器已运行:

sudo systemctl stop mariadb.service

使用mysqld命令使用mysqld命令启动mariadb - 授予表:

sudo mysqld --skip-grant-tables &

此时,我们可以在没有密码的情况下登录MariaDB root,以简单地运行:

mysql

然后我们可以更改root密码:

UPDATE mysql.user set password=password('newpassword'), plugin='mysql_native_password' where user='root';

之后,退出MySQL控制台并杀死MySQLD进程:

sudo pkill mysqld

使用systemctl命令重新启动MariaDB服务器:

sudo systemctl start mariadb

现在我们重置了MariaDB root密码,尝试使用新密码登录:

mysql -u root -p