1045-Access denied for user 'root'@'localhost'解決方法


1、出現這個問題的原因之一是權限的問題,也就是說你的電腦可能沒有權限訪問mysql數據庫。

講道理這種情況其實基本上不該遇到,因為我們在安裝mysql之后,root其實是有最高權限的,而且很少會有人去修改root的權限。

這個問題的解決方法就是授權。授權命令大概是這樣的:

grant all privileges on *.* to 'root'@'我電腦的ip地址' identified by '密碼';


如果你不是用root登陸的,那么就把root改成你的登陸名。
有的同學可能不知道這個命令往哪里寫,

開始——運行——輸入“cmd”——點擊確定

這樣就打開了我們的命令提示符界面:

 

 

然后找到我們的mysql的安裝目錄,將目錄復制到命令提示符中。如圖:

(cd 是什么意思我想不用特別解釋了吧)

然后進入目錄下的bin文件:

然后輸入 mysql -u root -p 如圖:

 

 

 

 

 

在Enter password: 后面輸入你的密碼。點擊回車。

如果密碼正確,會出現Welcome 的字符。

如圖:

 

 

這樣就成功進入了mysql數據庫。

當然如果你已經設置了環境變量,那么不用進入mysql目錄,直接輸入mysql -uroot就可以了。

當然,你也可以直接打開mysql下的bin窗口,然后按住shift+鼠標右鍵,選擇“在此處打開命令窗口”,就可以直接在bin目錄下打開命令提示符窗口了。

接下來就簡單了,直接將上面的代碼修改一下就可以用了。比如我的電腦的ip地址是:192.168.0.103,我的root密碼是:123456,那么我就可以將授權的語句改成:

grant all privileges on *.* to 'root'@'192.168.0.103' identified by '123456';
如果你是本地登錄的,那么:
grant all privileges on *.* to 'root'@'localhost' identified by '123456';
當然你也可以直接改成這樣:
grant all privileges on *.* to 'root'@'%' identified by '123456';
就可以給所有ip都設定root登陸了。
如果授權成功,會有Query OK的提示。
然后:
flush privileges;
這個是刷新授權的意思,如果沒有這句話,授權可能無法立刻生效。
exit;
這個是退出的意思。
授權完成以后,你可以再嘗試一下登陸,看看能不能登上。反正我登陸不上。


免責聲明!

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



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