|
最近遇到一個(gè)問題,就是后臺(tái)連不上mysql數(shù)據(jù)庫(kù),用navicat打開數(shù)據(jù)庫(kù)提示1045 Access denied for user 'root'@'localhost' (using password: YES)。這個(gè)問題在網(wǎng)上有一個(gè)解決辦法,但是全網(wǎng)都是復(fù)制了一個(gè)人的,并且沒有給出到底是什么原因?qū)е碌倪@個(gè)問題。今天我針對(duì)這個(gè)問題給出原因解釋和兩個(gè)解決此問題的方法!
原因: 1.數(shù)據(jù)庫(kù)密碼被篡改了! 沒錯(cuò),就是這個(gè)原因。但是很多人會(huì)立馬反駁,我自己的電腦一直用著好好的,怎么會(huì)被篡改了呢?黑客的手段厲害著呢,篡改你的數(shù)據(jù)庫(kù)密碼不是主要目的,目的是篡改后進(jìn)入你的數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)文件然后刪除本地?cái)?shù)據(jù)庫(kù),要挾你索要比特幣才是主要目的。 2.數(shù)據(jù)庫(kù)權(quán)限變更了! 這個(gè)原因與你機(jī)器的賬戶權(quán)限變更有很大的關(guān)系,實(shí)際發(fā)生場(chǎng)景有很多,就不舉例了。 下面就給出兩個(gè)解決辦法,根據(jù)個(gè)人喜好隨便一個(gè)都可以 方法一: 編輯mysql配置文件my.ini(在mysql的安裝目錄下,不同電腦可能不一樣,參考目錄①D:\Program Files\MySQL\MySQL Server 5.0\my.ini;②C:\ProgramData\MySQL\MySQL Server 8.0\my.ini;),在[mysqld]這個(gè)條目下加入 skip-grant-tables 保存退出后重啟mysql 1.打開cmd,點(diǎn)擊“開始”->“運(yùn)行”(快捷鍵Win+R)。 2.停止:輸入 net stop mysql 3.啟動(dòng):輸入 net start mysql 也可以在計(jì)算機(jī)-管理-服務(wù)里面找到MySQL的服務(wù),如圖
這時(shí)候在cmd里面輸入mysql -u root -p就可以不用密碼登錄了,出現(xiàn) password:的時(shí)候直接回車可以進(jìn)入,不會(huì)出現(xiàn)ERROR 1045 (28000),但很多操作都會(huì)受限制,因?yàn)闆]有g(shù)rant權(quán)限。 繼續(xù)按下面的流程走: 1.進(jìn)入mysql數(shù)據(jù)庫(kù): 2.給root用戶設(shè)置新密碼: 3.刷新數(shù)據(jù)庫(kù) 4.退出mysql: 改好之后,再修改一下my.ini這個(gè)文件,把我們剛才加入的 "skip-grant-tables"這行刪除,保存退出再重啟mysql服務(wù),再重新用Navicat連接就可以了。
方法二: 卸載原有的數(shù)據(jù)庫(kù),包括主程序、注冊(cè)表和C盤文件夾,但是一定要注意備份C盤C:\ProgramData\MySQL\MySQL Server (你卸載的數(shù)據(jù)庫(kù)版本)\data下面的數(shù)據(jù)庫(kù)文件,這是你之前數(shù)據(jù)庫(kù)表文件等,要恢復(fù)數(shù)據(jù)庫(kù)必須備份下來(lái),后面才可以恢復(fù)數(shù)據(jù)。此外,此文件夾是默認(rèn)隱藏的。
備份這些文件后,卸載原來(lái)的數(shù)據(jù)庫(kù)程序并刪除文件夾和注冊(cè)表,重裝數(shù)據(jù)庫(kù)后關(guān)閉數(shù)據(jù)庫(kù)服務(wù),把備份的文件放入對(duì)應(yīng)的位置,有重名的點(diǎn)擊替換,然后再重啟數(shù)據(jù)庫(kù)服務(wù)。這個(gè)時(shí)候打開數(shù)據(jù)庫(kù),你就會(huì)發(fā)現(xiàn)原來(lái)的數(shù)據(jù)庫(kù)已經(jīng)都出現(xiàn)了,完全一模一樣! |
|
|