自己在寫一個整合例子的時候發現各種文件配置好之后數據庫無法連接,一直報錯拒絕訪問
...
Caused by: java.sql.SQLException: Access denied for user 'xxx'@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:155)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:146)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:205)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:169)
at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
... 49 more
嘗試了各種方法,利用Mybatis原生的方式創建 SqlSession
能夠正常訪問數據庫
參考了以前的配置文件,嘗試修改了數據庫配置文件中的字段之后可以正常運行,最后發現是用戶名的問題
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/...
#username=root //萬惡之源
user=root
password=123456
Caused by: java.sql.SQLException: Access denied for user 'xxx'@'localhost' (using password: YES)
里面的報錯的 user 是系統的用戶名而不是配置文件中的 user
所以只要不命名為 username 就可以正常連接了