0

问题:如何在一个或多个服务器未连接到网络的情况下将 2 个或多个数据库连接放在一个 PHP 文件中?

故事情节 对不起,如果这个问题已经存在,但我已经搜索过了,但我还是不太明白..

所以,我正在尝试使用 MySQL 制作一个简单的分布式数据库系统,并且我没有使用任何复杂的东西,因为我是一个完整的初学者......我在 MySQL (mysql_connect) 上使用标准连接......在我把它作为一个包含的文件...因为它是一个分布式数据库,如果其中一个连接失败,在一个网站中将尝试建立多个连接...

像这样,我做了两个conn文件..虽然只是例子......

<?php
$server="192.168.0.3";
$user="user";
$pass="pass";
$db="db_1";

$conn = mysql_connect($server,$user,$pass);
if(!$conn) die "connection error";
$sel_db = mysql_select_db($db,$conn);
if(!sel_db) die "wrong db";
?>

所以我用 db_2 作为数据库制作了第二个......然后我使用 if.. 把它放在了网站上。

<?php
require_once "conn_1.php";
if (empty($conn)) {
   require_once "conn_2.php";
}
?>

我故意关闭/切断第一台服务器上的连接......所以如果第一次连接尝试失败,它将转到第二个......但它最终显示错误“试图连接到不存在的主机”,我忘记了细节,但是类似的东西……并没有显示其他任何东西……

所以我试图关闭第二台服务器......我认为结果会有所不同,它必须显示正常结果,因为第一次连接没有失败......但结果是,网站仍然显示相同的警告错误..

所以我只是想不使用那些连接文件,我必须放一个IP跟踪代码来检查其他服务器是否在线,然后调用连接文件......

或者它是另一种方式来做到这一点......?

抱歉,如果您不理解我的问题,请告诉我我的问题是否有点令人困惑..谢谢..

4

1 回答 1

0

为什么你的服务器宕机了?理想情况下,如果您有多个 MySQL 数据库,您将拥有多个数据库服务器,并在数据库之间进行某种同步。

每个网络服务器应该有 1 个数据库服务器。然后数据库服务器应全部由 1 个主数据库服务器更新。

更直接地回答你的问题

$conn = mysql_connect($server,$user,$pass);
if(!$conn) {

// NOW try and connect to somewhere else
$conn = mysql_connect($server2,$user,$pass);
}

也不要再使用 mysql_* 函数 - 查看 mysqli_ ( http://php.net/manual/en/book.mysqli.php ) 或 pdo ( http://php.net/manual/en/book.pdo 。 php )

于 2013-06-04T18:06:30.260 回答