溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》
  • 首頁(yè) > 
  • 教程 > 
  • 服務(wù)器 > 
  • Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

發(fā)布時(shí)間:2020-08-31 13:07:17 來(lái)源:腳本之家 閱讀:192 作者:guan_yan_guan 欄目:服務(wù)器

Web項(xiàng)目使用使用root賬號(hào)root密碼進(jìn)行部署,通過(guò)Eclipse加載到Tomcat服務(wù)器可以發(fā)布成功,打成war包放到tomcat的webapps目錄無(wú)法發(fā)布成功,報(bào)錯(cuò):

Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

jdbc.properties涉及Mysql配置:

Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

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

網(wǎng)上大部分帖通過(guò)運(yùn)行mysql -u root -p命令登錄時(shí)也會(huì)報(bào)這個(gè)錯(cuò)誤,所以,我就嘗試這種方法登錄下,看是否存在同樣的問(wèn)題。

Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

經(jīng)查資料原因是root帳戶默認(rèn)不開(kāi)放遠(yuǎn)程訪問(wèn)權(quán)限,所以需要修改一下相關(guān)權(quán)限。

解決方法:

方法一:

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

Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

2. 重啟MySQL服務(wù)。

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

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

Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

7. 重啟MySQL服務(wù)。
8. 在命令行中輸入"mysql -u root -padmin",即可成功連接數(shù)據(jù)庫(kù)。

完成以上步驟,修改jdbc.properties配置,Eclipse和war包方式都可以成功部署到tomcat服務(wù)器.問(wèn)題終于解決。

附錄方法二:

1. 管理員登陸系統(tǒng),停止mysql服務(wù)或者結(jié)束mysqld-nt進(jìn)程;
2. 進(jìn)入命令行,來(lái)到mysql的安裝目錄.假設(shè)安裝目錄為 d:\mysql\ , CMD進(jìn)入命令行;
3. 運(yùn)行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld-nt --skip-grant-tables啟動(dòng)mysql,關(guān)閉權(quán)限的檢查;
4. 運(yùn)行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin -u root flush-privileges password "newpassword" 重設(shè)root密碼;
5. 重新啟動(dòng)mysql服務(wù);

小插曲:

在解決問(wèn)題當(dāng)中,根據(jù)網(wǎng)上描述,通過(guò)mysql -u root -p password方式訪問(wèn)mysql,結(jié)果報(bào)如下錯(cuò)誤:

Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

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

這個(gè)錯(cuò)誤提示很明顯,我們-P后面的password代表的是數(shù)據(jù)庫(kù)名稱。但-p這個(gè)參數(shù),p應(yīng)該代表的是password。百度后發(fā)現(xiàn),-p和密碼是連在一起的。

mysql -h localhost -u root -ppassword

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

 Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''root''@''localhost'

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI