在myEclipse10中運行java項目的時候,遇到java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的報錯信息。幾番查找,終於解決問題,問題原因一個是配置文件db.properties語句錯誤,另外一個原因是mysql的授權的問題。
問題1:SSH項目數據庫配置文件的正確寫法:
jdbc.username=root
jdbc.password=123456
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/707?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull&allowMultiQueries\=true
jdbc.initPoolSize=5
jdbc.maxPoolSize=10
#...其中,數據庫名稱后面的語句是“?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull&allowMultiQueries\=true”以省略的
問題2:解決mysql授權問題
step1:進入mysql命令行

step2:給root用戶開放遠程訪問的限制
mysql>use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root的密碼"; //為root添加遠程連接的能力
mysql> flush privileges;
mysql> exit
mysql>select host,user from user; //查看修改是否成功。

問題解決過程中遇到的其他問題:
-
在解決mysql授權的時候,遇到了 ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: YES)這個報錯,在網上查找到需要修改mysql安裝文件夾下的my.ini文件,但是發現安裝程序文件夾里只有my-default.ini這個文件,一開始以為5.6版本就是要改這個文件,修改后無效。於是上網搜索mysql找不到my.ini文件的問題,發現這個文件在隱藏文件夾下,於是勾選顯示隱藏的項目,在C盤會顯示處ProgramData文件夾,找到my.ini文件。

-
打開后,搜索mysqld關鍵字找到后,在mysqld下面添加一行skip-grant-tables;
-
修改完成后,在服務中重啟mysql服務;
-
進入mysql庫(系統數據庫)


-
修改數據庫密碼 update user set password=password("123456") where user="root";

-
刷新數據庫 flush privileges;


-
OK
總結:問題的解決是一個循序漸進的過程,通常是在解決一個一個小問題過程中,才能最終把問題解決,所以,需要有耐心!