上次搞完了SQL Server 2005的遠端連線,現在輪到MySQL了...回想下串連MySQL資料庫的連接字串:
Server=localhost;Database=gyl;Uid=root;Pwd=111111;
Server的值是localhost吧...是支援本地的嘛..遠程想想無非就是把localhost改成IP地址,想得簡單,可它就是報錯...
錯誤說明: Host '60-248-32-13.HINET-IP.hinet.net' is not allowed to connect to this MySQL server
其實不是MySQL預設不支援遠程,是MySQL的預設使用者root預設不支援遠程,因為是localhost...
說白了,也就是許可權問題,root使用者的Host預設就是localhost...
以下解決方案是重建立了一個使用者,支援遠端存取,而不用去修改root的許可權,建議這樣做,呼呼...
1.首先用root使用者登陸
2.輸入以下語句,用於建立新使用者,並賦予相應許可權
grant select,insert,update,delete on [db_name].* to [username]@[ip_address] identified by '[password]';
說明:
[db_name]: 表示欲開放給新使用者的資料庫名稱
[username]: 新使用者的使用者名稱
[password]: 新使用者的密碼,包函上引號( ' )
[ip_address]: IP地址或者IP反查後的DNS Name
重點說明: (本人經曆的,(~ o ~)~zZ)
(1).如果想賦予所有操作的許可權
grant all on ... to 使用者名稱......
(2).如果想賦予操作所有資料庫的所有表的許可權
grant ... on *.* to 使用者名稱......
(3).如果想賦予某個資料庫的所有表
grant ... on 資料庫名稱.'*' to 使用者名稱...... ([ * ]兩邊一定要加單引號)
(4).如果想賦予某個資料庫的某張表
grant ... on 資料庫名稱.表名 to 使用者名稱......
(5).如果想任何用戶端都能通過該使用者名稱遠端存取
grant ... on ... to 使用者名稱@% ....... (要把IP地址改成[ % ])
(6).改完了以後一定要重新啟動MySQL服務
其他說明:
想看到這些使用者都在哪張表裡了嗎....請執行
use mysql;
select host,user,password from user;
host欄位表示登陸的主機...
好了...寫完啦...睡覺去...爸爸媽媽晚安...嘻\(^o^)/~