在Linux系統中,使用java登錄mysql的時候出現Access denied for user 'root'@'localhost'的異常。但是在命令行中使用mysql -u root -p 命令可以正常登錄使用。
異常信息如下:
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
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)
在網上找了很多相關的說明,都是說的 使用命令行登錄的時候 預見的這個問題如何解決,與我的這個情況不太一樣。
經過一番摸索與思考,最終發現問題所在,原因是自己在安裝mysql的時候,中間會彈出輸入root賬號密碼的對話框,而自己直接點擊確認,並沒有輸入任何密碼信息所致。
就是下面這兩個界面,這兩個界面,必須輸入密碼,要不然就會出現上面的問題。這個問題見網上尚未有人說明,我這邊發個帖子記錄一下!