我在仅主机网络中的笔记本电脑上的虚拟机上运行 MySQL(除非我打开 NAT 接口来更新操作系统,否则无法访问更广泛的互联网)。为方便起见,我使用没有密码的 root 用户。我有许多项目都设置为在我的开发环境中以这种方式访问数据库。
我刚刚做了一个apt-get upgrade
,其中包括将 MySQL 更新到 5.7.18(我正在运行 Ubuntu 16.04.2 LTS),现在我的所有项目都被拒绝访问。我不确定更新之前 MySQL 是哪个版本。
从控制台来看,mysql --user=root
如果我以 root 身份登录,则可以毫无问题地进行操作,但如果以其他任何人的身份登录,则不会出现问题。
有人能帮助确定更新后发生了什么变化,以及如何配置 MySQL 以再次允许 root 用户无需密码访问?
答案1
我不确定更新是否改变了 root@localhost 的插件,或者插件是否保持不变而 MySQL 的行为发生了变化,但我通过使用mysql_native_password
以下 SQL 将 root@localhost 的插件更改为解决了这个问题:
UPDATE user SET plugin='mysql_native_password' WHERE user='root' AND host='localhost';
FLUSH PRIVILEGES;