2013-04-11 45 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

相关问题