start' >&2 ;; esac

追加mysqld_multiデフォルトへのサービスrunlevels次のコマンドを使用します。

update-rc.d mysqld_multi defaults

マシンを再起動し、次のコマンドを使用して両方のMySQLインスタンスが実行されていることを確認します。

mysqld_multi report

マスタースレーブレプリケーションのセットアップ

ここで、同じマシンで2つのMySQLインスタンスを実行している場合、最初のインスタンスをマスターとしてセットアップし、2番目のインスタンスをスレーブとしてセットアップします。

構成の一部は、「mysqld_multiのセットアップ」の章ですでに実行されています。 my.cnfに残っている唯一の変更ファイルは、マスターにバイナリロギングを設定することです。これを行うには、my.cnfを編集します[mysqld1]に次の変更と追加を加えたファイルグループ:

log_bin = /var/log/mysql/mysql-bin.log innodb_flush_log_at_trx_commit = 1 sync_binlog = 1 binlog-format = ROW

これらの変更を有効にするには、マスターMySQLインスタンスを再起動します。

mysqld_multi stop 1 mysqld_multi start 1

スレーブが正しいレプリケーション権限でマスターに接続するには、マスター上に新しいユーザーを作成する必要があります。適切なホストとポートを備えたMySQLクライアントを使用してマスターインスタンスに接続します。

mysql -uroot -p --host=127.0.0.1 --port=3306

レプリケーション用の新しいユーザーを作成します。

mysql> CREATE USER 'replication'@'%' IDENTIFIED BY 'replication'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';

MySQLクライアントを終了します。

マスタデータのダンプを作成するには、以下のコマンドを実行します。

mysqldump -uroot -p --host=127.0.0.1 --port=3306 --all-databases --master-data=2 > replicationdump.sql

ここではオプションを使用します --master-data=2 CHANGE MASTERを含むコメントを付けるためバックアップファイル内のステートメント。このコメントは、バックアップ時のレプリケーション座標を示しており、後でスレーブインスタンスのマスター情報を更新するためにこれらの座標が必要になります。そのコメントの例を次に示します。

-- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=349;

前の手順で作成したダンプをスレーブインスタンスにインポートします。

mysql -uroot -p --host=127.0.0.1 --port=3307

最後に、スレーブインスタンスがマスターインスタンスに接続するには、スレーブのマスター情報を適切な接続パラメーターで更新する必要があります。

適切なホストとポートを備えたMySQLクライアントを使用してスレーブインスタンスに接続します。

mysql -uroot -p --host=127.0.0.1 --port=3307

マスター情報を更新するには、次のコマンドを実行します(上記で説明したように、ダンプファイルreplicationdump.sqlからレプリケーション座標を取得します)。

mysql> CHANGE MASTER TO -> MASTER_HOST='127.0.0.1', -> MASTER_USER='replication', -> MASTER_PASSWORD='replication', -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=349;

スレーブを起動するには、次のコマンドを実行します。

mysql> START SLAVE;

レプリケーションが稼働中であることを確認するには、次のコマンドを実行します。

mysql> SHOW SLAVE STATUS G

おめでとう。これで、同じマシンでのMySQLマスタースレーブレプリケーションが正常にセットアップされました。

MySQLマスタースレーブレプリケーション

要約

実稼働環境でのスケールアウトソリューションにマスタースレーブレプリケーションが必要な場合は、開発環境でマスタースレーブレプリケーションを構成しておくと便利です。このように、書き込み操作と読み取り操作用に個別のデータソースを構成することで、さらに展開する前にすべてが期待どおりに機能することをローカルでテストできます。

さらに、読み取り操作を複数のスレーブに分散するロードバランサーをテストするために、同じマシン上に複数のスレーブインスタンスを構成することもできます。その場合、この同じマニュアルを使用して、同じ手順をすべて繰り返すことにより、他のスレーブインスタンスをセットアップできます。