天天看點

連接配接MySQL出現1045錯誤 解決方法

錯誤現象:

連接配接遠端的MYSQL出現1045錯誤:"Access denied for user [email protected],請檢查使用者名和密碼"。

根據網上的介紹,通過指令

mysql> use mysql; mysql> select host,user from user;

得到如下結果 +---------------+------+ | host | user | +---------------+------+ | localhost | root | +---------------+------+ 5 rows in set (0.00 sec)

發現root使用者僅允許本地(localhost)登入

,如果要遠端登入該mysql伺服器的話,就需要建立一個普通權限的使用者,建立使用者使用如下指令:

mysql> grant select,update,insert,delete on mas.* to [email protected] identified by "123456";

這句指令的意思是:建立使用者duan,并且隻允許該使用者在本地(localhost)登入,密碼是123456,并且賦予它對mas庫中所有表select,update,insert的權限。我們在這有一個mas庫,是以用mas.*代表mas庫下的所有表。 現在該duan使用者,已經可以登入mysql了,但是也還是隻能本地登入。

若要duan使用者可以遠端登入mysql,則還需要如下指令:

mysql> update user set host = '%' where user = 'duan';

現在我們再檢視mysql的管理庫:

mysql> select host,user from user; +-----------+------+ | host | user | +-----------+------+ | % | duan | | localhost | root | +-----------+------+ 5 rows in set (0.00 sec) 這時,在MySQL-Front上建立連接配接,輸入連接配接名,遠端的Linux的IP位址,輸入使用者名duan和密碼123456,選擇連接配接端口,mysql預設的是3306,還是連接配接不上。

經過多番查找,發現還需要執行

mysql> flush privileges;

把緩存flush後,終于大功告成了。 因為使用update語句修改使用者記錄,還需要FLUSH語句告訴伺服器重載授權表。 當你使用GRANT和REVOKE語句時,表自動重載,而你直接修改授權表時不是。 是以更簡便的方法是 mysql> grant select,update,insert,delete on mas.* to duan@“%” identified by "123456";

轉載于:https://blog.51cto.com/xunzhang/1308111