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

3

好的,如果您能回答这个问题,就应该获得诺贝尔和平奖了。无论如何,以下是情况说明。

我正在使用Slicehost dot net,并且我有2个片(两个不同的IP)。一个片是我的邮件服务器,另一个是我的常规网站。我正在运行Ubuntu(8.04或8.10之类的版本,这不应该有关系)。我想做的是从另一个片访问邮件服务器上的MySQL数据库。我正在用PHP尝试做到这一点。非常感谢任何帮助。

3个回答

10

mysql_connect()

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

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

服务器参数

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

如果PHP指令mysql.default_host未定义(默认情况下),则默认值为'localhost:3306'。在SQL安全模式下,忽略此参数并始终使用值“localhost:3306”。

除非我误解了...这种设置非常普遍。您遇到的任何问题可能与以下内容有关:

一些其他相关的SO问题:


兄弟,不可能吧。如果这个能行,我可以亲你一下。非常感谢。等一下我会告诉你的。 - undefined
@lucha - 只需确保用户具有从其他主机访问数据库的权限... - undefined

2

假设您的邮件服务器IP为192.168.1.20,Web服务器为192.168.1.30。

首先,您需要允许Web服务器访问位于邮件服务器上的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');

1

如果连接成功,mysql_connect()将返回一个链接标识符。你需要做的就是保持对这两个链接的引用。

当你想要使用其中任何一个链接时,只需将该链接作为参数包含即可。

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

就是这么简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接