Ubuntu下mysql-workbench连接mysql报“access denied for user root@localhost”

问题描述

  最近在看ASP.NET Core的教程,微软给的示例项目中需要连接数据库,因此根据网上的教程在Ubuntu20.04中安装了mysql,同时为了操作简单,也一并安装了mysql-workbench(直接在mysql-workbench网站下载的deb包手动安装的)。安装完成后,在Ubuntu的终端中可以登录mysql,但是使用mysql-workbench连接mysql时,会报“Your connection attempt failed for user ‘root’ from your host to server at localhost:3306: Access denied for user ‘root’@‘localhost’”的错误。

解决方案

  百度并尝试了很多方法,包括重启mysql和mysql-workbench、重装mysql和mysql-workbench、将mysql设置为无密码登录等,都没有解决问题。
  参考文献1建议修改mysql的默认密码,于是在Ubuntu终端中登录mysql,输入下面的命令后报下面截图的错误:
  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

在这里插入图片描述
  接着百度错误“mysql ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@‘localhost’“,找到了参考文献2.根据参考文献2中的说明,有可能是上面sql语句中的用户名错了。
  在mysql命令行中输入“select user,host from user;”,查看mysql的用户信息(截图如下所示),root用户对应的host是%。:

Ubuntu下mysql-workbench连接mysql报“access denied for user root@localhost”_第1张图片
  接着根据参考文献2中的提示将上述sql语句中的root@localhost修改为root@%,接着执行修改root密码语句,语句执行成功。
在这里插入图片描述
  启动mysql-workbench,输入修改后的密码即可正常访问本地mysql
Ubuntu下mysql-workbench连接mysql报“access denied for user root@localhost”_第2张图片
Ubuntu下mysql-workbench连接mysql报“access denied for user root@localhost”_第3张图片

参考文献
[1]https://blog.csdn.net/leejeff/article/details/85808092
[2]https://blog.csdn.net/q258523454/article/details/84555847

你可能感兴趣的:(程序问题解答,Ubuntu,mysql,mysql-workbench,access,denied)