我們在使用mysql資料庫的過程中,無論是通過mysql的指令行用戶端,還是利用Sequel Pro這種圖形化的資料庫管理工具,在登入mysql時往往會遇到一個問題:
這個問題産生的原因可能有幾種情況,下面一一講述。
1. 密碼輸入錯誤
這個是最常見的情況,隻需要重新輸入正确地密碼即可。
2. 使用者不存在
對于普通使用者來說,這種情況很容易發生,但對于root使用者,大家可以能會有疑問:不是應該預設就建立好了嗎?
在剛安裝mysql時,系統會預設提供4種host下得root使用者,如下圖所示:
這些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