好的,如果您能回答这个问题,就应该获得诺贝尔和平奖了。无论如何,以下是情况说明。
我正在使用Slicehost dot net,并且我有2个片(两个不同的IP)。一个片是我的邮件服务器,另一个是我的常规网站。我正在运行Ubuntu(8.04或8.10之类的版本,这不应该有关系)。我想做的是从另一个片访问邮件服务器上的MySQL数据库。我正在用PHP尝试做到这一点。非常感谢任何帮助。
$resource = mysql_connect('other-server-address.com', 'username', 'password');
除非我误解了...这种设置非常普遍。您遇到的任何问题可能与以下内容有关:服务器参数
MySQL服务器。它也可以包括端口号,例如“hostname:port”或用于本地套接字的路径,例如“:/path/to/socket”。
如果PHP指令mysql.default_host未定义(默认情况下),则默认值为'localhost:3306'。在SQL安全模式下,忽略此参数并始终使用值“localhost:3306”。
一些其他相关的SO问题:
假设您的邮件服务器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');
如果连接成功,mysql_connect()将返回一个链接标识符。你需要做的就是保持对这两个链接的引用。
当你想要使用其中任何一个链接时,只需将该链接作为参数包含即可。
$link1 = mysql_connect($host1, $username1, $password1);
$link2 = mysql_connect($host2, $username2, $password2);
$r = mysql_query(QUERY, $link1);
就是这么简单。