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;
這個是退出的意思。
授權完成以後,你可以再嘗試一下登陸,看看能不能登上。反正我登陸不上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章