開発時には、MySQL データベースを同期する必要があります。両方とも FreeBSD 5.4 と PHP 4.4.0 がインストールされており、これらは最新バージョンです。 。
1. 2 つのサーバーをインストールして設定します
。MySQL を個別にインストールし、/usr/local/MySQL ディレクトリにインストールします (インストール手順は省略されています。関連するドキュメントを参照してください)。2 つのサーバーの IP は 192.168.0.1 と 192.168 です。 .0.2 をそれぞれマスター データベースとして使用し、192.168.0.2 をスレーブ サーバーとして使用します。つまり、マスターのデータはマスターのデータであり、スレーブはアクティブにマスターにアクセスします。データを同期して戻します。
2 つのサーバーの構成は同じです。デフォルトの構成ファイルは、my-large.cnf、my-medium.cnf などを含む /usr/local/MySQL/share/MySQL ディレクトリにあります。 my -small.cnf および他のライターはテスト中なので、my-medium.cnf を使用してください。 MySQL のインストール後、デフォルトの設定ファイルはデータベース ストレージ ディレクトリに指定されます。このため、設定ファイルは /usr/local/MySQL/var ディレクトリにあるはずです。そのため、そこに設定ファイルをコピーします。
cp /usr/local/MySQL/share/MySQL/my-medium.cnf /usr/local/MySQL/var/my.cnf
2 つのサーバーは同じ構成ファイルのコピー操作を実行します。
2. マスター サーバーを構成します。
次に、同期する必要があるデータベースと同期に使用するユーザーを考慮する必要があります。ここでは同期用の root ユーザーを指定し、データベース abc のみを同期する必要があります。
設定ファイルを開きます。
vi /usr/local/MySQL/var/my.cnf
次の情報を見つけてください。
# 1 と 2^32 - 1 の間の一意の ID が必要です# マスターホストが設定されていない場合はデフォルトで 1 になります# ただし、省略された場合はマスターとして機能しませんserver-id = 1 //1 はマスター、2 はスレーブです
2 行を追加します。
sql-bin-update-same //同期形式 binlog-do-db = abc //同期するデータベース
MySQL サーバーを 192.168.0.1 で再起動します。
/usr/local/MySQL/bin/MySQLadmin シャットダウン /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
3. スレーブ サーバーを構成します。
主に、スレーブ サーバーが主導的にデータをマスター サーバーに同期します。構成ファイルを編集します。
vi /usr/local/MySQL/var/my.cnf
同様の情報は以下から見つけてください。
# 1 から 2^32 - 1 の間の一意の ID が必要です# マスターホストが設定されていない場合はデフォルトで 1 になります# ただし、省略された場合はマスターとして機能しませんサーバー ID = 1
上記のサーバー ID を 2 に変更し、いくつかの情報を追加します。
server-id = 2 //この MySQL はスレーブ サーバーです master-host = 192.168.0.1 //マスター サーバーの IP master-user = root //マスター サーバーに接続するユーザー master-password = '' / /マスターサーバーに接続するためのパスワード master -port = 3306 //接続ポート master-connect-retry = 10 //リトライ回数replicate-do-db = abc //同期するデータベース log-slave-updates //同期フォーム
MySQL サーバーを 192.168.0.2 で再起動します。
/usr/local/MySQL/bin/MySQLadmin シャットダウン /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
4. インストールをテストするには、
まずスレーブのホスト ログを確認します。
cat /usr/local/MySQL/var/xxxxx_err (xxx はホスト名)
接続が正常か確認してください。このようなメッセージが表示されれば成功です。
051031 11:42:40 MySQLd が開始されました051031 11:42:41 InnoDB: 開始されました。ログ シーケンス番号 0 43634/usr/local/MySQL/libexec/MySQLd: 接続の準備ができました。バージョン: '4.1.15-log' ソケット: '/ tmp/MySQL.sock' port: 3306 Source distribution051031 11:42:41 [Note] スレーブ SQL スレッドが初期化され、ログ 'FIRST' の位置 0 でレプリケーションを開始し、リレー ログ './new4-relay-bin.000001' の位置: 4051031 11:43:21 [メモ] スレーブ I/O スレッド: マスター'[email protected]:3306'に接続され、ログ 'FIRST' の位置 4 でレプリケーションが開始されました
マスターの情報を見る
/usr/local/MySQL/bin/MySQL -u root
マスターステータスの表示:
MySQL> マスターステータスを表示;
Master の下の MySQL プロセス情報を確認します。
MySQL> プロセスリストを表示;
スレーブに関する情報を表示します。
/usr/local/MySQL/bin/MySQL -u root
スレーブのステータスを表示します。
MySQL> スレーブのステータスを表示します。
スレーブ下の MySQL プロセス情報を確認します。
MySQL> プロセスリストを表示;
その後、マスターの abc ライブラリにテーブル構造を作成してデータを挿入し、スレーブがデータを同期したかどうかを確認し、設定が成功したかどうかを確認できます。
最後に、興味があれば、ダブルクリック ホット バックアップ、または 1 つのマスターと複数のスレーブの同期の実装について学ぶことができます。