环境
IDE:idea
Bug描述
年假回来第一天,项目原封不动,运行时出错。错误代码如下:
2021-02-22 13:56:57.522 ERROR 6412 --- [ restartedMain] com.alibaba.druid.pool.DruidDataSource : init datasource error, url: jdbc:mysql://localhost:3306/civicint_beta?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
解决思路
百度之后,主要的原因有:
- mysql-connector-java的版本和mysql不一致,更改后仍不可用
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<scope>runtime</scope>
</dependency>
2.jar包未导入
之前项目可以正常运行,原因在这里的可能性不大。
进一步探究
之后打开多个项目,均会出现此问题。意识到这不是项目代码的原因。
检查idea连接数据库,发现连接不上报错:
The specified database user/password combination is rejected:
[28000][1045] Access denied for user 'root'@'localhost' (using password: YES)
到这里知道是数据库连接的原因。
百度之后发现问题有两类:
- 在命令行界面登录时显示此错误,无法从命令行进入数据库。
- 远程访问或者idea登录时出现此错误。
很多博主都说是密码错误的问题,但是在命令行界面是可以通过密码正常登录的,只是在idea连接时出错,显然不是密码错误的原因。
还有博主说是未开启数据库的远程访问,但是开启后仍无效。
最后发现有博主说是3306端口被占用,右键停掉mysqlzt之后,问题解决。
思考
这个bug前前后后花了四五个小时的时间,很多时候在钻牛角尖,在同样的问题上用同样的方法去解决,期待图灵显灵,重启idea,重启电脑,玄学解决问题。今后遇到bug同样的方法试了三四次,应该换种方法,或者问一下自己,真正的bug真的在这里吗?少做些无用功,方法比一股脑的往前冲更重要。
参考:
bug解决:Access denied for user 'root'@'localhost' (using password:YES)