使用新更新更新 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 用户身份连接。