ssm整合Mybatis无法连接数据库的问题 ‘Access denied for user...’

hitxueliang 2020-04-18

自己在写一个整合例子的时候发现各种文件配置好之后数据库无法连接,一直报错拒绝访问

...
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 就可以正常连接了

相关推荐