用MySQL-Front連接遠端的MySQL就會有些問題。大多提示1045錯誤:"Access denIEd for user [email protected],請檢查用戶名和口令".怎麼回事呢?
首先讓我們看一下遠端MySQL的用戶表
由此我們可以看到root用戶僅允許本地(localhost)登錄,如果要遠程登錄該MySQL服務器的話,就需要新建一個普通權限的用戶,新建用戶使用如下命令:
MySQL> grant select,update,insert,delete on mas.* to duan@localhost identifIEd by "123456";
這句命令的意思是:新建用戶duan,並且只允許該用戶在本地(localhost)登錄,密碼是123456,並且賦予它對mas庫中所有表select,update,insert的權限。我們在這有一個mas庫,所以用mas.*代表mas庫下的所有表。如果要對所有的表,包括MySQL庫的表都有操作權限則可以替換成“*.*”.
現在該duan用戶,已經可以登錄mysql了,但是也還是只能本地登錄。若要duan用戶可以遠程登錄MySQL,則還需要如下命令:
MySQL> update user set host = '%' where user = 'duan';
現在我們再查看MySQL的管理庫:
過以上操作,我們知道其實用root用戶也可以遠程登錄MySQL的,就是把root的host字段改成%即可,但是強烈不建議如此做,否則會帶來嚴重的安全風險。
好了,我們可以連接我們的遠端mysql了,在MySQL-Front上新建連接,輸入連接名,遠端的Linux的IP地址,輸入用戶名duan和密碼123456,選擇連接端口,MySQL默認的是3306,OK,連接成功了。祝賀一下!!!
注意事項:
一:Linux防火牆一定要開放3306端口。
二:我用mysql5.0做實驗,完全沒有問題,但是MySQL4.0好像有點問題。我們可以用duan用戶在任何IP上登錄數據庫,應為我們duan用戶的host字段是“%”。但是我只要一換IP,就無法連接mysql了。不知道是MySQL版本的問題,還是我輸入命令的時候有誤。此問題需要進一步的證實。
備注:我從另一篇博客中看到在建立連接時在服務器後面填入ip地址即可,使用數據庫選擇MySQL就可以了
感歎網絡上如此眾多的牛人!如今真的成了通過看博客和寫博客學習交流的時代了. 上午的時候安裝IIS組件
然後配置,全部都是一頭霧水.在網上搜索一下,會搜出一片解決問題的辦法,最後終於搞定了,具體又說不出來搞定的.但是我想如果再有類似情況出現的話,會解決的更快.也許經驗就是這麼得來的.這個摸索的過程本身就是對事物的熟悉過程.如果出現問題,旁邊的人立即就指點迷津,是達不到這種效果的.