问题:在一台或多台服务器未连接到网络的情况下,如何将 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跟踪代码来检查其他服务器是否在线,而不是使用那些连接文件,然后调用连接文件...
或者是另一种方法......?
抱歉,如果您不明白我的问题,请告诉我我的问题是否有点令人困惑。 谢谢..
最佳答案
为什么你们的服务器宕机了?理想情况下,如果您有多个 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 )
关于php - 如何检测某个IP当前是否连接有PHP和MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924453/