与2020.03.10 15:35分解决的沙雕Bug
Caused by: java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
在学习dbcp连接池的配置方法:
- BasicDataSource
- BasicDataSourceFactory
BasicDataSourceFactory遇见的沙雕Bug(抽自己两个耳巴子🤐)
Bug如下:
Exception in thread "main" org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.commons.dbcp.BasicDataSource.getLogWriter(BasicDataSource.java:1098)
at org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:350)
at com.gr2.dbcp.TestDBCP.getDataSourceWithDBCPByProperties(TestDBCP.java:46)
at com.gr2.dbcp.TestDBCP.main(TestDBCP.java:51)
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2938)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:855)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3337)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1930)
at com.mysql.jdbc.Connection.<init>(Connection.java:716)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.GeneratedConstructorAccessor4.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:353)
at com.mysql.jdbc.Connection.getInstance(Connection.java:295)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
... 5 more
看到别的帖子推荐说:遇到问题看看
Caused by: java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
这里就是错误的信息,我的数据库没有设置密码
在Properties配置文件里:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/myschool
username=root
password=null
initialSize=20
maxActive=10
minIdle=5
设置密码为null ,考虑到没有密码,所以null与"" ,都测试过Bug依然存在。
接下来将近4个小时,都在查👇👇👇
Caused by: java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
AND
SQLNestedException: Cannot create PoolableConnectionFactory
找到的类似问题解决方法都不适用
ps:在暴躁边缘
愤怒冲击着我,密码删掉👇👇👇
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/myschool
username=root
password=
initialSize=20
maxActive=10
minIdle=5
再来一个愤怒的Click。
可能是气势大强大,这个沙雕问题KO了
(苍天啊!!! )
啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
孩子太难了(心中似有一百只草泥马在狂奔🤬)