我正在运行一个全新的Ubuntu16.04虚拟机,用MariaDB、Nginx和PHP7执行一些测试。
当我安装MariaDB (低谷apt-get安装mariadb-server)时,我没有被要求为根用户设置密码,就像我们安装MySql-server时一样。
然后,我将MySql工作台安装为MariaDB服务器的客户端。
当我试图以没有密码的root用户身份连接到db服务器时,出现了一个错误,如下所示:

如下图所示,根用户没有密码,我使用以下语法创建了另一个没有密码的用户:CREATE USER 'ig2'@'localhost' IDENTIFIED BY ''。

因此,现在,当我试图连接刚刚创建的没有密码的用户ig2时,我有一个警告和一个成功的连接。


因此,我使用以下语法为根用户设置了一个密码:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');,现在根用户有了一个加密的密码。

如果我再次尝试连接根目录和他的密码

对于根用户,我仍然有相同的连接错误:

如果我为用户ig2设置相同的密码,使用相同的语法来设置root密码,我就可以成功地连接。
当我试图连接终端时,感觉很奇怪:

根用户可以使用密码连接,也可以不使用密码连接。
在简历中,我不知道发生了什么,也不知道如何通过像Workbench这样的客户端应用程序访问服务器。
有人能解释我吗?
发布于 2016-08-11 00:40:40
这个问题的答案应该可以帮助您解决问题:
$ sudo mysql -u root
[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;简而言之,新版本的MariaDB检查系统用户是什么,并且只允许实际的系统用户root登录到DB用户root。禁用所有插件将禁用该功能。
https://dba.stackexchange.com/questions/146425
复制相似问题