2013-04-11 74 views
0

客戶希望從那裏訪問IP地址到他們的CRM程序的特定mysql表。我正在開發網站部分並用表單收集數據。我如何授予遠程訪問一個特定的MySQL表?

我應該做哪些步驟來授予從一個ip地址訪問特定的mysql表的權限,以及如何測試它?

GRANT ALL PRIVILEGES ON mydatabase.* to [email protected]'69.234.27.102' IDENTIFIED BY 'jimspassword'; 

我可以用特定的表格替換*嗎?我如何測試這從我的電腦?

問候,

+0

你爲什麼不直接去檢查它?是的,你可以用表名替換*。你可以測試它:'授予所有特權在mydatabase.mytable到yourtestuser @'your_ip_address'IDENTIFIED BY'yourpassword';' – Mike 2013-04-11 17:46:46

+0

@Mike我試過了,它看起來像用戶+ pwd + ip被添加,但是當測試我得到 ' [根@ server1的mydomain.com]#mysql的-u yourtestuser -p -h x3.xxx.xx3.156 輸入密碼: ERROR 2003(HY000):無法連接到MySQL服務器「x3.xxx .xx3.156'(113)' – alex 2013-04-11 17:55:35

+0

@mike不使用-h x3.xxx.xx3.156我得到錯誤1045(28000):拒絕訪問用戶'yourtestuser'@'localhost'(使用密碼:YES )如預期。但與-h ip地址我不能訪問 – alex 2013-04-11 18:04:41

回答

2

授予權限:

GRANT ALL PRIVILEGES ON mydatabase.mytable to [email protected]'your_ip_address' IDENTIFIED BY 'yourpassword'; 

記住:

FLUSH PRIVILEGES; 

使MySQL監聽網絡連接:

my.cnf

[mysqld] 
port = 3306 

請與:

netstat -lnp 

確保防火牆不會阻止你的連接

iptables-save 

檢查,如果一切是在網絡級別確定從你的電腦有:

telnet mysqlbox_ip 3306 

確保如果在MySQL的用戶定義的:

mysql> \u mysql 
mysql> select * from user; 

確保有表的權限定義:

mysql> select * from tables_priv; 
+0

真的很感激它。我已經遵循了上述所有步驟,並且我得到了我期望的所有輸出,甚至是最後一個:我看到使用Host,db,table等創建的用戶。 在這種情況下,主機應該是遠程ip,我喜歡建立連接,對嗎? – alex 2013-04-11 19:59:59

+0

btw telnet輸出 連接到mysqlbox_ip。 轉義字符是'^]'。 J 3w〜4'c?O!S'js $ RU3 = vmysql_native_passwordConnection由外部主機關閉。 這是正確的嗎? – alex 2013-04-11 20:27:45

相關問題