2017-04-12 83 views
3

我正在尝试在Ubuntu(16.04.02)上安装MariaDB(10.0.29)。在我安装并启动了该过程(sudo service mysql start)之后,即使我最初将密码设置为空白,我也无法登录为rootMariaDB - 无法以root身份登录

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

+0

空密码和无密码可能会被区别对待。 – tadman

+0

我有类似的经历。首先,在安装时我没有要求设置root密码。我试图重置root密码,但仍然无法访问。并重新安装,并陷入相同的情况。还有Ubuntu 16.04 64bit。之后安装mysql –

回答

6

与本机MariaDB软件包(由MariaDB本身提供的软件包)不同,Ubuntu默认生成的软件包对本地根目录具有unix_socket认证。要检查,运行

SELECT user, host, plugin FROM mysql.user; 

如果在plugin列中看到unix_socket,这就是原因。

要返回到平时的密码验证,运行

UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket'; 
FLUSH PRIVILEGES; 

(选择WHERE条款,符合你的目的,一个上面只是一个例子)

0

我这个挣扎了一段时间。我的Ubuntu默认带有MariaDB(10.0.31)。重新安装几次后,将插件更改为各种建议 - 我仍然无法正确登录到MySQL。

最后,我安装了回购的最新MariaDB的(10.2.12): https://downloads.mariadb.org/mariadb/repositories/

我能够立即正常登录。

相关问题