PHP データベース接続を変更して、別のサーバーへのフェイルオーバー接続を含めようとしています。この質問が出されたことは知っていますが、うまくいかないようです。ここに私がこれまでに持っているコードがあります。
$serverA 用に構成された両方のサーバーから望ましい結果が得られるため、バックアップ サーバーと本番サーバーの両方が機能することがわかっています。機能していないのはフェイルオーバー コンポーネントです。
<?php
$serverA = "mysiteA.dyndns.org:3306";
$serverB = "mysiteB.no-ip.biz:3306";
$user="myuser";
$password="mypass";
$database = "mydb";
$connection = mysql_connect($serverA,$user,$password);
if (!($connection)) {
$connection = mysql_connect($serverB,$user,$password);
};
$db = mysql_select_db($database,$connection);
$query = "SELECT listener_snapshot FROM listener_incr";
$result = mysql_query($query);
$i = -60;
while($row = mysql_fetch_assoc($result))
{
$dataset1[] = array($i,$row['listener_snapshot']);
$i++;
}
$final = json_encode($dataset1,JSON_NUMERIC_CHECK);
echo $final;
?>
PHP エラー ファイルには、失敗した最初の接続試行以外は何も表示されません。編集: 最初の失敗は、2 番目のサーバーにフェールオーバーしたいので、私のテストでは設計によるものです。そのため、serverA で MySQL を強制終了しました。