インターネット アプリケーションの継続的な開発に伴い、データベースのパフォーマンスと高可用性に対する要件がますます高くなり、データベース クラスターが重要なソリューションになっています。
MySQL は現在最も広く使用されているリレーショナル データベースの 1 つであり、PHP は Web 開発で非常に一般的に使用されている言語です。PHP と MySQL データベース クラスターを完全に組み合わせて、高パフォーマンスと高可用性を実現するにはどうすればよいですか? 目標それから問題になります。
この記事では、PHP を使用して MySQL データベース クラスターを実装する方法を紹介します。
1. MySQL データベース クラスターの概要
MySQL データベース クラスターとは、複数のサーバーで構成されるクラスター環境を指し、複数の MySQL データベース サーバーがソフトウェア技術によって全体として統合され、サーバーの効率が向上します。データベース システムのパフォーマンスと可用性。
一般的なクラスター アーキテクチャには 2 つあり、1 つはマスター/スレーブ レプリケーション モード、もう 1 つはマルチホスト パラレル モードです。
マスター/スレーブ レプリケーション モードは、MySQL のレプリケーション機能を使用して実装されます。1 つの MySQL をマスター データベースとして使用し、他の MySQL をスレーブ データベースとして使用します。マスター データベース上のデータは、マスター データベースと同期されます。スレーブ データベースはリアルタイムで実行され、スレーブ データベースは書き込みなしで読み取り専用となるため、データベースの読み取りパフォーマンスと可用性が向上します。
マルチホスト並列モードは、同じクラスター内で同時に実行するメイン データベースとして複数の MySQL を使用し、ネットワーク プロトコルを通じてデータを相互に同期して、高いデータ可用性とスケーラビリティを実現します。
2. MySQL データベース クラスターの構築
MySQL データベース クラスターを構築するには、まず MySQL データベース アーキテクチャとレプリケーションの原則を理解する必要があり、その後、MySQL クラスターをより適切に完璧に組み合わせることができます。 PHP。
MySQL のレプリケーション機能は、binlog ログとリレーログ ログを通じて実装されており、binlog は主に MySQL サーバーの追加、削除、実行などの操作を記録します。待ってください。relaylog は主に元のデータをスレーブ サーバーが受信できるデータ形式に変換し、スレーブ サーバーに渡します。
ターミナルにコマンド vi /etc/my.cnf を入力して、MySQL 構成ファイルを開きます。
[mysqld] セクションに次のコードを追加します。
server-id=1 # サーバー番号
log-bin=mysql-bin # バイナリ ログを有効にする
binlog- ignore -db=information_schema # 非ログ データベース
binlog-ignore-db=mysql
[mysqld] セクションに次のコードを追加します。ここでのアドレスは、ログを記録するメイン データベースのアドレスです。 connect to:
log-slave-updates=1 # 他のスレーブ サーバーへのスレーブ サーバー ログのコピーを有効にする
relay-log=mysql-relay-bin # リレー ログを有効にする
relay-log-index =mysql-relay -bin.index
master-info-file=master.info
relay-info-file=relay-log.info
read_only=1 #読み取り専用モード、スレーブ サーバーはマスター ライブラリの書き込み操作には参加しません
server-id=2 # サーバー番号
log-bin=mysql-bin # バイナリ ログを有効にする
binlog-do-db=mydata # データベースの名前レプリケートされる
replicate-ignore-db= information_schema # 無視されたデータベースをレプリケートする
replicate-ignore-db=mysql
relay-log-recovery=ON
マスター用の上記の設定ファイルスレーブ レプリケーション モード、マルチホスト パラレル モードの設定ファイル 公式ドキュメントなどを参照できます。
3. PHP を MySQL クラスターに接続する方法
PHP は、MySQL データベースの拡張バージョンであり、より優れたパフォーマンスと機能を提供する mysqli 拡張機能を使用して MySQ クラスターに接続できます。 。
次は、mysqli 拡張機能を使用して MySQL クラスターに接続する PHP コードの例です。
$mysqli = new mysqli("mysql_server_1", "user", "password", "mydatabase"); # メイン サーバーに接続します
if ($mysqli->connect_errno) { # 接続に失敗しました
echo "MySQL メイン サーバーに接続できませんでした: (" . $mysqli-> ;connect_errno . ") " . $ mysqli->connect_error;
} else { #接続に成功しました
echo "MySQL メインサーバーに正常に接続しました。ホスト情報: " . $mysqli->host_info . "
";
}
$mysqli->query("CREATE TABLE mytable (id INT, name VARCHAR(255))"); # メインサーバーにテーブルを作成します
$mysqli ->close(); # メインサーバーへの接続を閉じる
$mysqli = new mysqli("mysql_server_2", "user", "password", "mydatabase"); # スレーブサーバーへの接続
if ($mysqli->connect_errno) { # 接続に失敗しました
echo "MySQL スレーブ サーバーへの接続に失敗しました: (" . $mysqli->connect_errno . ") " . $mysqli->gt; connect_error;
} else { # 接続成功
echo "MySQL スレーブ サーバーに正常に接続しました。ホスト情報: " . $mysqli->host_info . "
";
}
$mysqli->query("SELECT * FROM mytable"); # スレーブ サーバーからテーブルをクエリする
$mysqli->close(); # スレーブ サーバーとの接続を閉じる
上記のコード例では、最初にマスター サーバーが接続され、次にマスター サーバーがスレーブ サーバーに接続され、サーバー上にテーブルが作成され、次にスレーブ サーバーが mysqli 拡張機能を介して接続され、テーブルがクエリされます。スレーブサーバー上で。
IV. 結論
MySQL クラスターは完璧なパフォーマンスと可用性のソリューションであり、広く使用されている Web プログラミング言語である PHP は、mysqli 拡張機能を介して MySQL クラスターに適切に接続し、高いパフォーマンスを達成できます。パフォーマンス、パフォーマンスと高可用性の目標。
この記事の導入部を通じて、PHP 開発者が MySQL クラスターを構築および接続する方法を学ぶことは非常に価値があります。
以上がPHP で MySQL データベース クラスターを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。