在不同的服务器上有两个网站,但需要一个使用php和mysql的数据库

时间:2013-01-17 14:15:28

标签: php mysql

我想在一台服务器上使用一个网站,在另一台服务器上使用另一个网站,但是使用php和mysql只需要一个数据库。 可能吗?如果是,那怎么样?

6 个答案:

答案 0 :(得分:3)

是。这是可能的。通常你不把你的数据库放在远程服务器上。您应该将数据库服务器保留在同一数据中心,以便利用高速内部网络链接。

如果您的网站位于主机web1web2且数据库位于dbhost1中,则在web1web2中使用{{1}连接到mysql作为主机名。

的mysqli

dbhost1

PDO

$mysqli = new mysqli("dbhost1", "user", "pass");

旧版mysql扩展

$dbh = new PDO('mysql:dbname=dbname;host=dbhost1', "user", "pass");

注意:确保数据库mysql_connect("dbhost1", "user", "pass"); (在主机user@web1上)或web1(在主机user@web2上)有权访问。< / p>

答案 1 :(得分:1)

您可以在给定正确设置的情况下连接到远程数据库。

如果不这样做,你可以编写一个可以从两个服务器调用的服务层。

答案 2 :(得分:0)

连接到mysql数据库时,在两台服务器上使用相同的数据库连接凭据。

答案 3 :(得分:0)

是的,为什么不呢。但是对于安全性和性能问题,我不会这样做。

问题是您在在另一台服务器下理解的是通过LAN直接连接的服务器,或者是另一个数据中心的服务器。当服务器位于另一个数据中心时,您可能会遇到很多流量和性能问题。

当服务器连接到direkt时,您可以更改my.cnf并更改行:

bind-address 127.0.0.1

然后可以从外部访问服务器。您应该为用户提供足够的权限从外部进行连接。

答案 4 :(得分:0)

是的,这是可能的。 你必须使用可从两个服务器访问的mysql服务器。并且您只需从两个服务器连接相同的主机/用户/通行证:

define("WEBDOMAIN", "94.145.22.15"); //some fake data
define("DEFDBNAME", "my_db");
define("DEFUSERNAME", "my_user");
define("DEFDBPWD", "my_pass");

mysql_connect( WEBDOMAIN, DEFUSERNAME, DEFDBPWD );
mysql_select_db( DEFDBNAME);

那应该是enaugh。如果您的托管服务提供商不允许服务器连接到外部服务器(有时端口已关闭),您可能会遇到一些问题。

答案 5 :(得分:0)

出于安全原因,您无法连接到未授权托管服务器的mysql服务器。 因此在mysql中,您必须允许用户不仅可以从localhost连接,还可以从其他主机连接(如果您已经获得了特权,可以通过编辑用户权限从phpMyAdmin进行连接)。