idea 连接 MySQL 8.0 以上遇到 Access denied for user ‘root‘@‘localhost‘ (using password: YES)密码错误的问题

因为用的是 MySQL 8.0.25 而现在 idea 刚好只支持到 8.0.25,想着 idea 既然支持就不想换 5.7 了。但是在连接本地 MySQL 的时候遇到了很多问题。虽然我的 mysql 是运行在本地 windows 上的,但是问题的原理我想不同的平台是一致的。
所有的问题都是从 idea 连接 数据库时的报错:Access denied for user ‘root‘@‘localhost‘ (using password: YES)这个问题开始的。
这时候 Spring Boot 的数据库也连不上,报错:java.sql.Exception:Access denied for user ‘root‘@‘localhost‘ (using password: YES)

遇事不决问百度,然后说是密码不正确,要改密码(但是通过我的查找,发现,不是密码不正确,而是端口的问题),照着网上修改,并没有生效。一样报错。

通过跳过Mysql密码验证的方式:

1、在MySQL安装目录,c:\Program Flies\MySQL\bin里输入 mysqld --console --skip-grant-tables --shared-memory得到运行的一段内容后,不要关闭这个cmd。

2、无密码方式进入Mysql
再打开一个管理员模式运行的cmd,进入mysql下的bin目录后,直接登录mysql。输入mysql -u root -p此时会显示让你输入密码,直接回车,就可以成功连接Mysql。

3、将登陆密码设置为空
输入代码,将密码设置为空(此时还不能直接修改密码,必须先设置为空,否则会报错):
use mysql;
update user set authentication_string=’’ where user=‘root’;
quit;
更改自己的登陆密码

1、再打开一个cmd,用刚刚修改好的空密码登录mysql -u root -p
2、更改新密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
3、quit;退出MySQL
4、关闭掉所有的界面,再次测试连接。

密码也改了,复杂度也提高了,yml 中的密码也填上了 "",不起效果。

还有就是将 MySQL 密码加密规则修改,因为 idea 和其他很多地方还是采用将 用户的 authentication_string 修改为:mysql_native_password。

然后就是权限的问题:因为使用 idea 属于使用的是本地连接,但是还是设置远程连接权限:
查看用户和主机(user 和 host):因为之前已经修改过密码,这里直接登录:use mysql;
接着: select host,user from user,查看用户权限
修改用户权限如下:

	update user set host='%' where user='root';
	flush privileges;

也没有用,最后想到是不是服务地址的问题,之后查看端口,看是否是端口错误:SHOW VARIABLES WHERE VARIABLE_NAME='port';或者直接 status都可查看端口,没有错误;
再看是不是有服务占用端口:发现是一个叫 mysqlzt的服务占用,停掉这个服务,在开启 MySQL 服务,再次连接成功。
根据服务 PID 查看端口:

netstat -ano | findstr pid

本文借鉴于:这里

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值