ステップ 1: メインサーバーを構成する
この記事の残りの部分では、2 つのサーバーを指定します。 A (IP は 10.1.1.1) がメイン サーバー (ホストと呼ばれます) として機能します。 B (IP は 10.1.1.2) はバックアップ サーバー (バックアップ サーバーと呼ばれます) として機能します。
MySQL のレプリケーション機能の実装プロセスは次のとおりです。スタンバイ マシン (B) がホスト マシン (A) に接続し、ホスト マシンのバイナリ更新ログを読み取り、変更を自身のデータベースにマージします。スタンバイ マシンにはホストに接続するためのユーザー アカウントが必要なので、次のようにホスト上にアカウントを作成し、ファイル権限のみを付与します。
GRANT FILE ON *.* TO replicate@10.1.1.2 IDENTIFIED BY "password";スタンバイ マシンがホスト マシンに接続できるようにするには、ホスト マシンで「FLUSH PRIVILEGES」を実行します。ただし、次の手順でサーバーを停止しますので、心配する必要はありません。
ここで、ホスト データベースのスナップショットが必要になり、バイナリ更新ログの生成を許可するようにホストを構成します。まず、「my.cnf」ファイルを編集してバイナリ更新ログを許可します。そのため、[mysqld] セクションの下のどこかに「log-bin」という行を追加します。次回サーバーが起動すると、ホストはバイナリ更新ログ (名前: $#@60;ホスト名 $#@62;-bin.$#@60;増分番号#$#@62;) を生成します。バイナリ更新ログを有効にするには、MySQL サービス プログラムをシャットダウンし、ホスト上のすべてのデータベース ディレクトリを別のディレクトリに移動して、mysqld を再起動します。すべてのデータベースが取得されていることを確認してください。取得されていないと、コピー時にメインマシンにテーブルが存在し、スタンバイマシンにテーブルが存在しない場合、エラーで終了します。これで、データのスナップショットと、スナップショットの取得以降にデータベースに加えられた変更のバイナリ ログが作成されました。 MySQL データ ファイル (*.MYD、*.MYI、*.frm) はファイル システムに依存するため、Solaris から Linux へのようなファイル転送だけを行うことはできないことに注意してください。異種サーバー環境にいる場合は、mysqldump ユーティリティまたはその他のカスタム スクリプトを使用してデータのスナップショットを取得する必要があります。