本文介绍了出现 Access denied for user 'root'@'localhost' (using password: YES)
问题的解决方式
Access denied for user 'root'@'localhost' (using password: YES)
一.bug提示如下
[Druid-ConnectionPool-Create-] [com.alibaba.druid.pool.DruidDataSource]-[ERROR] create connection error
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:)
二.分析
Access denied for user 'root'@'localhost' (using password: YES)
指通过账号名:
root
,以及
root
的密码无法访问
本地
的数据库,那问题锁定在连接数据库的账号和密码上,与
datasource
的配置有关.
三.解决
因为我使用的是yml文件配置
datasource
,找到yml文件,并打开如下代码:
spring:
datasource:
url: jdbc:mysql://localhost:/ndc?useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
将以上代码中
username
与
password
改为正确的账号密码即可.
四.思考
出现上述问题,主要是因为部署项目到
远程服务器
时需要切换
连接的数据库路径
以及更换
账号
与
密码
,因连接的服务器数据库信息与本地数据库信息不一致造成,为了防止频繁变更数据库的账号和密码,可以将账号和密码设置为相同的.
简书
Java常见问题之Access denied for user ‘root’@’localhost’