在不同的服务器上设置脚本和mysql数据库

时间:2010-12-03 22:52:30

标签: php mysql

您好,我有一个独特的网络设置,我需要了解一下。

我有两个服务器需要相互通信,服务器A将托管实际的基于PHP的应用程序;服务器B将托管MySQL数据库和服务器连接详细信息。服务器B也将位于封闭的网络中,因此只有本地网络上的人才能访问服务器,而服务器A将基于Web。

如果访问者可以访问服务器B的本地网络,则他们应该能够通过服务器A上的脚本连接并访问服务器B上的数据库以完成图片。

我的第一个问题是:这可能吗?我认为这不是100%肯定。

其次:如何编写用于访问Server B脚本的脚本?它类似于访问包含文件还是远程https调用?我只是不确定如何实现这一目标。

非常感谢任何建议!!

提前致谢!

3 个答案:

答案 0 :(得分:1)

远程连接MySQL数据库应该没问题。这是一本非常详尽的指南Enabling Remote MySQL Access。我能够通过WHM中一个名为 Additional MySQL Access Hosts 的简单设置来实现这一点。从服务器B访问此区域,您将能够添加服务器A的IP地址,允许服务器A使用以下格式连接到服务器B的数据库:
mysql_connect("IP Address of Server B","DB_username","DB_pass")
或者你喜欢的任何MySQL连接功能。

如果这不能立即起作用,您可能需要对防火墙设置进行一些更改,但据我所知,您的需求应该是可能的。

答案 1 :(得分:0)

我不确定,但我认为这不可能使用PHP。 PHP是服务器端,所以它是必须访问mysql服务器的服务器,客户端不会发挥作用......

有许多方法可以保护mysql服务器只接受来自服务器A的连接...

答案 2 :(得分:0)

首先,它不是一个好的可用性架构。如果您只有一台机器同时运行PHP和DBMS,那么您就会遇到单点故障。这不是可用性的好方案。在单独的机器上使用PHP和DB,您现在有2个单点故障!更糟!!

但我们暂时不会这样做。

是的,它可以通过PHP进行门禁访问,但是PHP本身并没有实现mysql协议 - 所以你要么必须

1)进行大量编程以实现具有附加功能的mysql协议代理。

2)更新mysql权限表以临时允许远程主机

实际上,您不希望从子网外部访问您的网络服务器。

但是,如果机器可以访问“本地网络”,那么您需要做的就是在非网络上的某处放置端口反射器,然后将客户端指向该端口而不是DBMS。 DBMS会将客户端地址视为端口反射器运行的位置(甚至可能在DBMS服务器本身的不同端口上运行。

但是,我们需要更多地了解“访问本地网络”的含义