PHP で MySQL データベース クラスターを実装する方法

王林
リリース: 2023-05-16 09:14:01
オリジナル
842 人が閲覧しました

インターネット アプリケーションの継続的な開発に伴い、データベースのパフォーマンスと高可用性に対する要件がますます高くなり、データベース クラスターが重要なソリューションになっています。

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。

  1. MySQL レプリケーション原理

MySQL のレプリケーション機能は、binlog ログとリレーログ ログを通じて実装されており、binlog は主に MySQL サーバーの追加、削除、実行などの操作を記録します。待ってください。relaylog は主に元のデータをスレーブ サーバーが受信できるデータ形式に変換し、スレーブ サーバーに渡します。

  1. MySQL クラスター構成

ターミナルにコマンド 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!