如何使用PHP从另一个IP地址访问另一个MySQL数据库?

时间:2009-07-15 23:09:16

标签: php mysql

好的,如果你能回答这个问题,你应该获得诺贝尔和平奖。无论如何,这是情况。

我正在使用Slicehost点网,我有2个切片(两个不同的IP)。一片是我的邮件服务器,另一片是我的普通网站。我正在运行Ubuntu(8.04或8.10,类似的东西,它应该没关系)。我要做的是从另一个切片访问邮件服务器上的MySQL数据库。我试图用PHP做到这一点。我真的很感激任何帮助。

3 个答案:

答案 0 :(得分:9)

mysql_connect()

$resource = mysql_connect('other-server-address.com', 'username', 'password');

第一个参数是mysql服务器地址。

  

服务器参数

     

MySQL服务器。它还可以包括   一个端口号。例如“hostname:port”或   本地套接字的路径,例如   “:/ path / to / socket”为localhost。

     

如果是PHP指令   mysql.default_host未定义   (默认),则默认值为   的 'localhost:3306'。在SQL安全模式下,   此参数被忽略并且值   总是使用'​​localhost:3306'。

除非我误解......这种设置很常见。您遇到的任何麻烦都可能与以下内容有关:

其他一些相关的SO问题:

答案 1 :(得分:2)

假设您的邮件服务器位于IP 192.168.1.20且Web服务器为192.168.1.30

首先,您需要允许Web服务器访问Mail服务器上的mysql数据库。 在192.168.1.20上运行mysql命令并授予对Web服务器所需数据库的访问权限

mysql>  grant all on mydb.* to 'someuser'@'192.168.1.30' identified by 'secretpass;

您的PHP代码使用以下内容连接到该数据库:

$conn = mysql_connect('192.168.1.20', 'someuser', 'secretpass');

答案 2 :(得分:1)

如果连接成功,mysql_connect()将返回链接标识符。您还必须保持对两个链接的引用。

如果您想使用哪个链接,只需将链接作为参数包含。

$link1 = mysql_connect($host1, $username1, $password1);
$link2 = mysql_connect($host2, $username2, $password2);
$r = mysql_query(QUERY, $link1);

这很简单。