Web項目打成war包部署到tomcat時報MySQL Access denied for user 'root'@'localhost' (using password: YES)錯誤解決方案


Web項目使用使用root賬號root密碼進行部署,通過Eclipse加載到Tomcat服務器可以發布成功,打成war包放到tomcat的webapps目錄無法發布成功,報錯:

jdbc.properties涉及Mysql配置:

 

錯誤很明顯,與MySQL密碼有關,但是兩種方式部署項目使用的jdbc.properties配置文件是一樣的。所以肯定不是密碼不對引起的,只好找度娘,O(∩_∩)O哈哈~。

網上大部分帖通過運行mysql -u root -p命令登錄時也會報這個錯誤,所以,我就嘗試這種方法登錄下,看是否存在同樣的問題。

經查資料原因是root帳戶默認不開放遠程訪問權限,所以需要修改一下相關權限。

解決方法:

方法一:

1.打開MySQL目錄下的my.ini文件,在文件的最后添加一行"skip-grant-tables",保存並關閉文件。(WIN7默認安裝,my.ini在C:\ProgramData\MySQL\MySQL Server 5.6)

2. 重啟MySQL服務。
3. 通過命令行進入MySQL的BIN目錄,輸入"mysql -u root -p"(不輸入密碼),回車即可進入數據庫。(WIN7默認安裝,BIN目錄為:C:\Program Files\MySQL\MySQL Server 5.6\bin)
4. 執行"use mysql;",使用mysql數據庫。
5. 執行"update user set authentication_string=PASSWORD("admin") where user='root';"(修改root的密碼)
6. 打開MySQL目錄下的my.ini文件,刪除最后一行的“skip-grant-tables”,保存並關閉文件。

前邊的步驟,其實也可以直接通過mysql客戶端工具修改root密碼.(如圖)

7. 重啟MySQL服務。
8. 在命令行中輸入"mysql -u root -padmin",即可成功連接數據庫。
完成以上步驟,修改jdbc.properties配置,Eclipse和war包方式都可以成功部署到tomcat服務器.問題終於解決。

附錄方法二:

1. 管理員登陸系統,停止mysql服務或者結束mysqld-nt進程;
2. 進入命令行,來到mysql的安裝目錄.假設安裝目錄為 d:\mysql\ , CMD進入命令行;
3. 運行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld-nt --skip-grant-tables啟動mysql,關閉權限的檢查;
4. 運行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin -u root flush-privileges password "newpassword" 重設root密碼;
5. 重新啟動mysql服務;

小插曲:

在解決問題當中,根據網上描述,通過mysql -u root -p password方式訪問mysql,結果報如下錯誤:

但是奇怪的是這條命令我輸進去死活都不對,它都會要求再輸入一遍密碼,然后返回"ERROR 1049 (42000): Unknown database '123456'"

這個錯誤提示很明顯,我們-P后面的password代表的是數據庫名稱。但-p這個參數,p應該代表的是password。百度后發現,-p和密碼是連在一起的。

mysql -h localhost -u root -ppassword 

-p和密碼是連在一起的,趕緊一試,果然可以登陸!

 

如上總結有若有問題,歡迎大家指正,謝謝,希望能幫助到需要的小伙伴,O(∩_∩)O~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM