看起来我无法再在 Ubuntu 15.04 中以 root 用户身份登录 MySQL(实际上是 MariaDB)(我从 14.04 升级到 14.10)
我已尝试重置密码。
什么是可以正常工作sudo mysql
- 但我想使用 以其他用户身份登录mysql -uroot -p
。当我创建具有完全权限和密码的新用户时,它可以正常工作。
有什么改变了吗?
答案1
所以你已经走了从版本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;
此后,指定的密码应该有效。但我不确定这是否可取。