从备用域

时间:2015-08-05 10:38:49

标签: php mysql

我在两个单独的服务器上有两个域,foo.combar.com

我在foo上设置了一个网站和MySQL数据库,我希望将其迁移到bar,但bar没有MySQL。

作为一个解决方案,我正在移动所有文件,但将数据库保留在foo上,并远程连接到它。

我目前正在这样连接:

connect.php

$hostname = 'database.foo.com';
$username = 'username';
$password = 'password';
$dbname   = 'database';

try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
}

catch(PDOException $e){
    echo($e->getMessage());
}

这在foo.com上工作正常,但当我将此文件迁移到bar.com时,我收到此错误:

  

SQLSTATE [HY000] [2003]无法连接到'database.foo.com'上的MySQL服务器(110)

我可以在两个窗口中打开两个网站foo.combar.com,一个会工作,而另一个不会 - 尽管他们都在连接(或尝试连接) )到同一个数据库。

为什么会发生这种情况?如何纠正?

3 个答案:

答案 0 :(得分:0)

数据库服务器未配置为侦听其他服务器可访问的网络端口。

这可能有几个原因。

通常只监听本地套接字而根本不使用TCP / IP,因为这样更有效,更安全。

该端口可能会从另一台机器上防火墙。

服务器可能只能在本地网络上访问,foo.com可能是不同的网络,没有从bar.comdatabase.foo.com的路由。

答案 1 :(得分:0)

假设服务器B上有数据库,服务器A上有网站(说它有IP 192.234.23.12)

在cpanel上将服务器B的IP列入白名单

并创建一个在数据库中具有足够权限的新用户(比如说这个用户是测试)

然后将此用户创建为test@192.234.23.12

答案 2 :(得分:0)

您需要在 foo.com 上启用远程MySQL访问权限,方法是: foo的cpanel>数据库>远程mysql,并将栏的域添加到白名单中。 这应该有用。