Linux 上で高可用性の MySQL コンテナ クラスターを構築するにはどうすればよいですか?
クラウド コンピューティングとコンテナー テクノロジーの台頭により、ますます多くの企業がコンテナーを使用してアプリケーションを構築し始めています。最も一般的に使用されるリレーショナル データベースの 1 つである MySQL は、コンテナ化を通じて高可用性も実現できます。この記事では、Linux 上で高可用性の MySQL コンテナ クラスターを構築する方法を紹介し、関連するコード例を示します。
ステップ 1: 環境を準備する
まず、MySQL コンテナ クラスターを構築するための Linux ホストが必要です。 Docker と Docker Compose がこのホストにインストールされていることを確認してください。インストールされていない場合は、次のコマンドを使用してインストールできます。
$ sudo apt-get update $ sudo apt-get install docker.io $ sudo apt-get install docker-compose
ステップ 2: Docker イメージを作成する
次に、コンテナーを実行するための MySQL イメージを作成する必要があります。イメージ構築プロセスは Dockerfile を通じて定義できます。 Dockerfile
という名前のファイルを作成し、次の内容をその中に追加します。
FROM mysql:8.0 ENV MYSQL_ROOT_PASSWORD your_password ENV MYSQL_DATABASE your_database COPY your_script.sql /docker-entrypoint-initdb.d/
上記のコードでは、your_password
は MySQL の root ユーザーのパスワード、 your_database
は作成するデータベースの名前、your_script.sql
は実行する初期化スクリプト ファイルです。これらのパラメータは実際の条件に応じて変更できます。
ファイルを保存して終了した後、次のコマンドを使用してイメージを構築します。
$ sudo docker build -t your_image_name .
ここで、your_image_name
はイメージに付けた名前です。
ステップ 3: Docker Compose ファイルを作成する
MySQL コンテナ クラスターを構築する前に、docker-compose.yml
ファイルを作成して、集まる。 docker-compose.yml
というファイルを作成し、次の内容をその中に追加します。
version: '3' services: mysql1: image: your_image_name restart: always ports: - 3306:3306 volumes: - ./mysql1:/var/lib/mysql environment: - MYSQL_REPLICATION_MODE=master - MYSQL_REPLICATION_USER=repl_user - MYSQL_REPLICATION_PASSWORD=repl_password mysql2: image: your_image_name restart: always volumes: - ./mysql2:/var/lib/mysql environment: - MYSQL_REPLICATION_MODE=slave - MYSQL_MASTER_HOST=mysql1 - MYSQL_MASTER_PORT=3306 - MYSQL_MASTER_USER=repl_user - MYSQL_MASTER_PASSWORD=repl_password
上記のコードでは、your_image_name
は以前にビルドされた MySQL イメージの名前です。 mysql1
と mysql2
は、それぞれ 2 つの MySQL コンテナの名前を表します。 MYSQL_REPLICATION_MODE
パラメータはコンテナのレプリケーション モードを設定します。master
はマスター ノードを表し、slave
はスレーブ ノードを表します。 MYSQL_REPLICATION_USER
と MYSQL_REPLICATION_PASSWORD
は、レプリケーション ユーザーのユーザー名とパスワードです。 MYSQL_MASTER_HOST
および MYSQL_MASTER_PORT
は、マスター ノードのアドレスとポートです。 MYSQL_MASTER_USER
と MYSQL_MASTER_PASSWORD
は、マスター ノードに接続するためのユーザー名とパスワードです。
ステップ 4: コンテナー クラスターを開始する
ファイルを保存して終了した後、次のコマンドを使用してコンテナー クラスターを開始します:
$ sudo docker-compose up -d
-d
パラメーターを使用して、コンテナーをバックグラウンドで実行できるようにします。
ステップ 5: コンテナーのステータスを確認する
次のコマンドを使用してコンテナーのステータスを表示します:
$ sudo docker-compose ps
コンテナーのステータスが であることがわかります。 running
、これはコンテナが正常に動作していることを意味します。
ステップ 6: コンテナ クラスタをテストする
これで、MySQL コンテナ クラスタが適切に動作しているかどうかをテストできます。まず、MySQL コンテナのマスター ノードに接続し、テスト データベースを作成します:
$ sudo docker exec -it mysql1 mysql -uroot -p Enter password: your_password mysql> CREATE DATABASE test; mysql> EXIT;
次に、スレーブ ノードに接続し、マスター ノード上のデータが読み取れるかどうかを確認します:
$ sudo docker exec -it mysql2 mysql -uroot -p Enter password: your_password mysql> USE test; mysql> SELECT * FROM your_table; mysql> EXIT;
このうち、your_table
は、プライマリ ノードで作成したテーブルの名前です。
上記の手順により、可用性の高い MySQL コンテナ クラスターが正常に構築されました。マスター ノードのデータを複数のスレーブ ノードに複製することにより、データの冗長性と高可用性を実現できます。マスター ノードに障害が発生した場合、スレーブ ノードから新しいマスター ノードが選出され、サービスの提供を継続できます。
この記事が、Linux 上で高可用性の MySQL コンテナ クラスターを構築するのに役立つことを願っています。私はあなたの成功を祈って!
以上がLinux 上で可用性の高い MySQL コンテナ クラスターを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。