dockerでMySQLのマスタースレーブレプリケーションをどのようにデプロイするか?

Docker内でMySQLのマスター・スレーブレプリケーションをデプロイするためには、次の手順を実行する必要があります。

  1. ネットワークを作成する(任意):
  2. ドッカーのネットワークmysql-netを作成する
  3. MySQLのマスターノードコンテナを起動します。
  4. docker run -d –name mysql-master –network mysql-net -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql を実行します。
  5. MySQLのスレーブコンテナを起動する:
  6. docker run -d –name mysql-slave –network mysql-net -p 3307:3306 -e MYSQL_ROOT_PASSWORD=password mysqlを実行します。
  7. マスターノードのコンテナでバイナリログとマスター・スレーブ・レプリケーション機能を有効にします。
  8. docker exec -it mysql-master bash
    mysql -u root -p
    全てのデータベースのREPLICATION SLAVE権限を ‘slave_user’@’%’ に付与する IDENTIFIED BY ‘password’;
    PRIVILEGES をフラッシュする;
    READ LOCK を持つテーブルをフラッシュする;
    MASTER の状態を表示する;
  9. FileとPositionの値をメモしてください。
  10. マスタースレーブ複製をノードコンテナから設定します。
  11. docker exec -it mysql-slave bashコマンドを使用して、mysql-slaveコンテナに入ります。次に、mysql -u root -pコマンドを使用してMySQLにrootユーザーとしてログインします。その後、CHANGE MASTER TO MASTER_HOST=’mysql-master’, MASTER_USER=’slave_user’, MASTER_PASSWORD=’password’, MASTER_LOG_FILE='[File]’, MASTER_LOG_POS=[Position];というコマンドを実行して、レプリケーションの設定を更新し、START SLAVE;コマンドを実行してスレーブを起動します。
  12. ファイルとポジションを、親ノードの該当する値で置き換えてください。

現在、MySQLのマスタースレーブレプリケーションを成功させました。データベースにアクセスするには、マスターノードのコンテナの3306ポートまたはスレーブノードのコンテナの3307ポートに接続できます。

bannerAds