在Ubuntu18.04上安装MariaDB后用root账号登录MariaDB没有输入密码的提示

最近,我在Ubuntu 18.04上测试了MariaDB数据库服务器,发现 在Ubuntu上安装 MariaDB数据库服务后,登录MariaDB不需要输入root用户的密码。 MariaDB作为MySQL的一个分支,每次登录MariaDB服务之前,都应该提示输入密码。而现在只需安装数据库即可提供root用户访问权限,而无需输入密码。

即使我运行命令

sudo mysql_secure_installation 

也不需要输入root帐户密码。但这样的话,所有依赖MariaDB数据库root密码进行身份验证的应用程序和服务都没法正常工作。例如 phpMyAdmin和MySQL Workbench 就没法正常工作。

Google之后,我发现现在MariaDB使用unix_socket插件进行身份验证,而不是密码。即使您设置了密码,也会将其忽略。要重新启用密码验证,请按照以下步骤操作:

1. 通过运行以下命令登录MariaDB服务器

sudo mysql -u root

注意,现在登录是不需要密码的。

2. 进入数据库服务器之后,运行以下命令以禁用root用户的插件身份验证

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit

3. 重新启动并运行以下命令以设置新密码。

sudo systemctl restart mariadb.service 

4. 服务重启之后,运行以下命令登录MariaDB服务器并创建新的root密码。

sudo mysql_secure_installation

5. 出现提示时,请按照下面的建议答案回答问题。

  • Enter current password for root (enter for none): 直接敲回车
  • Set root password? [Y/n]: Y
  • New password: 输入你的密码
  • Re-enter new password: 重复你输入的密码
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

6. 现在,您应该可以使用密码身份验证登录了。其他应用程序现在应该可以使用root密码身份验证了。运行以下命令进行登录测试。

sudo mysql -u root -p

7. 然后输入密码,MariaDB会显示:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.1.25-MariaDB-1 Ubuntu 18.04

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>

Okie,结束收工!

发表评论