ホームページ >バックエンド開発 >PHPチュートリアル >MySQL 組み込みレプリケーションによる可用性の最適化 (5)_PHP チュートリアル
ステップ 4: データベース接続プログラムを変更する
マシン A とマシン B の間の相互関係を確立したので、このアプローチの利点を活用するにはデータベース接続プログラムを変更する必要があります。次の関数は、まずマシン A への接続を試行し、接続を確立できない場合はマシン B に接続します。
$#@60;?php
/*************************************************** ****
関数 db_connect()
成功した場合はリンク識別子を返し、エラーの場合は false を返します
**************************** ****************************/
$username = "replUser";
$primary = "10.1.1.1"; $backup = "10.1.1.2";
# プライマリへの接続を試行
if(!$link_id = @mysql_connect($primary, $username, $password))
# セカンダリへの接続を試行
$link_id = @mysql_connect($secondary , $username, $password)
return $link_id; }
?$#@62;
上記のテクノロジーを使用してデータベース接続の確立プロセスを 2 つの状況でテストしました。1 つは、メインの MySQL サービス プログラムが閉じている場合です。サーバーはまだ実行中ですが、メイン サーバーがシャットダウンされているという状況もあります。 mysqld のみがシャットダウンされている場合、接続はすぐにバックアップ マシンに転送されますが、サーバー全体がシャットダウンされている場合は、PHP が原因で無限に待機することになります (2 分後に追跡を諦めましたが、注意が必要な時間は非常に短いです)。存在しないサーバーを探しています。残念ながら、fsockopen 関数とは異なり、mysql_connect 関数にはタイムアウト パラメーターがありませんが、fsockopen を使用してタイムアウトをシミュレートできます。
http://www.bkjia.com/PHPjc/532383.html
www.bkjia.com