mysql修改本地主機連線

爛泥行天下發表於2016-05-12

在mysql資料庫安裝完畢後,為了能遠端連線管理mysql資料庫。我們一般是在mysql伺服器上通過update命令來更新user表中的host記錄的。如下:

mysql -uroot -p123456

update user set host=’%’ where user=’root’;

FLUSH PRIVILEGES;

/etc/init.d/mysqld restart

clip_image001

這樣操作完畢之後,發現現在遠端主機是可以連線mysql資料庫了。但是在mysql資料庫伺服器上卻不能連線本地的mysql資料庫,如下:

clip_image002

clip_image003

為什麼會出現這個情況呢?

是因為在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;

clip_image004

通過上圖,我們可以看到目前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’;

clip_image005

以上sql語句操作完畢後,我們再次重啟mysql資料庫。然後本地連線資料庫看下,如下:

clip_image006

通過上圖,我們可以很明顯的看到。mysql資料庫伺服器已經可以連線mysql資料庫了。

以上是比較麻煩的做法,最簡單的做法是在遠端的mysql管理軟體上直接刪除。因為現在遠端機器是可以登陸到mysql資料庫上的,再次我使用的Navicat Premium這款軟體。如下:

clip_image007

clip_image008


相關文章