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 サイトの他の関連記事を参照してください。