我正在尝试在 Ubuntu (16.04.02) 上设置 MariaDB (10.0.29)。在我安装它并启动该过程之后(sudo service mysql start
),我无法登录root
即使我最初将密码设置为空白。
Ie mysql -u root
会拒绝我访问。我通过以下方式登录sudo mysql
并检查用户表,即。select user, password, authentication_string from mysql.user
正如预期的那样:
+---------+----------+-----------------------+
| User | password | authentication_string |
+---------+----------+-----------------------+
| root | | |
+---------+----------+-----------------------+
我还创建了一个新用户,即。create user 'test'@'localhost' identified by '';
当我尝试做的时候mysql -u test
(空密码),它按预期工作并让我登录。
用户表如下所示:
+---------+----------+-----------------------+
| User | password | authentication_string |
+---------+----------+-----------------------+
| root | | |
| test | | |
+---------+----------+-----------------------+
那么,谁能告诉我为什么我无法登录root
使用空密码,但我可以登录test
?
与原生 MariaDB 包(MariaDB 本身提供的包)不同,Ubuntu 默认生成的包有unix_socket https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin本地根的身份验证。要检查,请运行
SELECT user, host, plugin FROM mysql.user;
如果你看到unix_socket
in the plugin
专栏,就是这个原因。
要返回到通常的密码身份验证,请运行
UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket';
FLUSH PRIVILEGES;
(选择WHERE
符合您的目的的条款,上面的条款只是一个例子)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)