Java常見問題之Access denied for user 'root'@'localhost'
阿新 • • 發佈:2019-01-28
本文介紹了出現Access denied for user 'root'@'localhost' (using password: YES)
問題的解決方式
一.bug提示如下
[Druid-ConnectionPool-Create-879333993] [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:964 )
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226 )
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2194)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779 )
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
二.分析
Access denied for user 'root'@'localhost' (using password: YES)
指通過賬號名:root
,以及root
的密碼無法訪問本地
的資料庫,那問題鎖定在連線資料庫的賬號和密碼上,與datasource
的配置有關.
三.解決
因為我使用的是yml檔案配置datasource
,找到yml檔案,並開啟如下程式碼:
spring:
datasource:
url: jdbc:mysql://localhost:3306/ndc?useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
將以上程式碼中username
與password
改為正確的賬號密碼即可.
四.思考
出現上述問題,主要是因為部署專案到遠端伺服器
時需要切換連線的資料庫路徑
以及更換賬號
與密碼
,因連線的伺服器資料庫資訊與本地資料庫資訊不一致造成,為了防止頻繁變更資料庫的賬號和密碼,可以將賬號和密碼設定為相同的.