天天看點

【MySQL】Access denied for user 'root'@'127.0.0.1' (using password: YES)解決方法

我們在使用mysql資料庫的過程中,無論是通過mysql的指令行用戶端,還是利用Sequel Pro這種圖形化的資料庫管理工具,在登入mysql時往往會遇到一個問題:

【MySQL】Access denied for user 'root'@'127.0.0.1' (using password: YES)解決方法

這個問題産生的原因可能有幾種情況,下面一一講述。

1. 密碼輸入錯誤

這個是最常見的情況,隻需要重新輸入正确地密碼即可。

2. 使用者不存在

對于普通使用者來說,這種情況很容易發生,但對于root使用者,大家可以能會有疑問:不是應該預設就建立好了嗎?

在剛安裝mysql時,系統會預設提供4種host下得root使用者,如下圖所示:

【MySQL】Access denied for user 'root'@'127.0.0.1' (using password: YES)解決方法

這些root使用者預設都沒有密碼,我們在使用時會根據需要來設定密碼。通常來講,大家都認為localhost和127.0.0.1相同,是以在設定127.0.0.1的密碼以後,也認為在localhost上也能用該密碼進行登入,但實際上就會遇到我們題目中提到的問題。而造成這個問題出現的原因是:在mysql中,在選擇127.0.0.1時,是通過TCP/IP協定連接配接到本機的;而在選擇localhost時,是通過Unix Socket連接配接到本機的。是以,在連接配接localhost時,我們可以通過在my.cnf的[mysql]區域裡設定protocol=tcp,來預設選擇TCP/IP的連接配接方式;或者為localhost設定一個密碼。

3. 使用者權限不夠(針對非root使用者)

針對于非root使用者,我們在建立時往往會忽略給其權重限。

對于使用者user,我們可以用以下指令來賦予其全部權限:

grant all privileges on *.* to 'user'@'%' identified by 'xxx'
           

其中,*.*表示全部資料庫的全部表,%表示所有的ip位址,xxx表示設定的密碼。

轉載請注明出處:http://blog.csdn.net/sunset108/article/details/48418107