ホームページ >運用・保守 >Linuxの運用と保守 >Linux 上で可用性の高い MySQL コンテナ クラスターを構築するにはどうすればよいですか?

Linux 上で可用性の高い MySQL コンテナ クラスターを構築するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-08-01 10:13:15971ブラウズ

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 イメージの名前です。 mysql1mysql2 は、それぞれ 2 つの MySQL コンテナの名前を表します。 MYSQL_REPLICATION_MODE パラメータはコンテナのレプリケーション モードを設定します。master はマスター ノードを表し、slave はスレーブ ノードを表します。 MYSQL_REPLICATION_USERMYSQL_REPLICATION_PASSWORD は、レプリケーション ユーザーのユーザー名とパスワードです。 MYSQL_MASTER_HOST および MYSQL_MASTER_PORT は、マスター ノードのアドレスとポートです。 MYSQL_MASTER_USERMYSQL_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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。