无法再以root用户身份登录MySQL?


8

看来我在Ubuntu 15.04中无法再以root用户身份登录MySQL(实际上是MariaDB)(我是从14.04通过14.10升级的)

我已经尝试过重设密码。

什么工作,是sudo mysql-但我使用要以root登录,从其他用户mysql -uroot -p。当我创建具有完整权限和密码的新用户时,它正在工作。

有什么变化吗?


嗯……“但是我想以root身份登录”对我来说(!)从来没有这样的理由。您可以为root用户以外的任何其他用户设置系统,如果需要,也可以对该用户执行相同的操作;-)
Rinzwind

@Rinzwind有足够的理由以root用户身份登录数据库。这是管理用户,数据库等的唯一方法。没有内部sudo机制。
奥利(Oli)

@oli我们为此使用了另一个用户。即。仅当使用“ sudo su”重置mysql时,才可以使用“ root”进行访问,但该访问不需要任何身份验证。
Rinzwind

Answers:


6

因此,已从版本5.5.44-1ubuntu0.14.04.1转到10.0.20-0ubuntu0.15.04.1。听起来比实际的还要可怕,这就是他们出于某种原因称呼5.6的原因

似乎新版本的MariaDB已在用户表中添加了一个插件,以强制通过固定路径进行身份验证。在这种情况下,root数据库的用户是通过强制unix_socket插件。这auth_socket在某些圈子中似乎也被称为。

无论如何,此插件限制了事情,因此只有系统root用户才能以数据库身份登录root,而无需输入密码。这是他们做出的安全选择。

您可以通过清空root用户的插件字段来还原此设置:

shell$ sudo mysql -u root

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

指定的密码应在此之后生效。我不确定这是多么明智。


此后,将sudo mysql -u root无法再通过登录。这意味着,/etc/mysql/debian.conf还应该进行调整。
亚历克斯(Alex)

4
没有为我工作。此后,我什至无法使用“ sudo mysql -u root”登录。
MrSmith42 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.