尝试修复 mysql '拒绝 root 访问' 时出现问题,无需密码

尝试修复 mysql '拒绝 root 访问' 时出现问题,无需密码

使用新更新更新 Ubuntu 16.04 后,我的 Java 应用程序无法再连接到 mysql。
我尝试通过终端手动连接,并使用 Mysql Workbench,结果相同:

Access denied for user 'root'@'localhost' (using password: NO)

我通常使用 root 用户登录,无需密码。
经过一番搜索,我发现这与plugin auth

我按照说明进行操作此主题, 这第二个答案

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

但是我事先没有检查我的mysql版本,它是 5.7.17。
我知道,我试图快速完成,结果却犯了蠢事。
我应该这样做:

[mysql] update user set plugin='mysql_native_password' where User='root';

所以现在,我甚至无法启动任何mysql提示来纠正我的错误。
我找不到用户“mysql”是否可以通过提示连接...
我不记得我是否设置了其他用户:我该如何验证这一点?

有人有什么想法吗?

答案1

经过进一步搜索后,我偶然发现了这个,它起了作用;

sudo service mysql stop
sudo /usr/bin/mysqld_safe --skip-grant-tables &
mysql -h localhost

从那里,我可以连接到mysql。然后:

update user set plugin='mysql_native_password' where user = 'root';

重新启动服务后,我可以以 root 用户身份连接。

相关内容