最近,我在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