本文由秀依林楓提供友情贊助,首發於爛泥行天下。
在mysql數據庫安裝完畢後,為了能遠程連接管理mysql數據庫。我們一般是在mysql服務器上通過update命令來更新user表中的host記錄的。如下:
mysql -uroot -p123456
update user set host='%' where user='root';
FLUSH PRIVILEGES;
/etc/init.d/mysqld restart
這樣操作完畢之後,發現現在遠程主機是可以連接mysql數據庫了。但是在mysql數據庫服務器上卻不能連接本地的mysql數據庫,如下:
為什麼會出現這個情況呢?
是因為在mysql數據庫的user的host字段中,已經明確拒絕本地登錄。我們現在需要修改這個字段,把該字段中的不需要的相關記錄全部刪除。
先停止數據庫,然後使用mysqld_safe –skip-grant-tables &方式啟動數據庫。這種方式啟動數據庫,跳過了mysql數據庫的安全驗證。如下:
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql -uroot mysql
use mysql;
select host,user from user;
通過上圖,我們可以看到目前localhost沒有對應的用戶。我們現在需要做的就是把,改記錄中不需要的全部刪除。只留下host為%的記錄。
刪除記錄,需要使用以下sql語句:
delete from user where host='127.0.0.1';
delete from user where host='ilanni';
delete from user where host='::1';
delete from user where host='localhost';
以上sql語句操作完畢後,我們再次重啟mysql數據庫。然後本地連接數據庫看下,如下:
通過上圖,我們可以很明顯的看到。mysql數據庫服務器已經可以連接mysql數據庫了。
以上是比較麻煩的做法,最簡單的做法是在遠程的mysql管理軟件上直接刪除。因為現在遠程機器是可以登陸到mysql數據庫上的,再次我使用的Navicat Premium這款軟件。如下:
很簡單,你沒有輸入密碼
需要輸入你安裝mysql時設置的密碼
Access denied 拒絕訪問,這種錯誤的原因,一般是訪問mysql數據庫的密碼不正確、用戶沒有訪問某數據庫的權限造成的。