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

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

Aug 01, 2023 am 10:13 AM
mysql linux 容器 高可用性の mysql コンテナ クラスターを構築する

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

Apache80ポートが占有されている場合はどうすればよいですか Apache80ポートが占有されている場合はどうすればよいですか Apr 13, 2025 pm 01:24 PM

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

Apacheを始める方法 Apacheを始める方法 Apr 13, 2025 pm 01:06 PM

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

Debian Readdirのパフォーマンスを最適化する方法 Debian Readdirのパフォーマンスを最適化する方法 Apr 13, 2025 am 08:48 AM

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする

ネットワーク監視におけるDebian Snifferの重要性 ネットワーク監視におけるDebian Snifferの重要性 Apr 12, 2025 pm 11:03 PM

検索結果は「DebiansNiffer」とネットワークモニタリングにおけるその特定のアプリケーションに直接言及するわけではありませんが、「Sniffer」はネットワークパケットキャプチャ分析ツールを指し、Debianシステムでのアプリケーションは他のLinux分布と本質的に違いはありません。ネットワークの監視は、ネットワークの安定性を維持し、パフォーマンスを最適化するために重要であり、パケットキャプチャ分析ツールが重要な役割を果たします。以下は、ネットワーク監視ツールの重要な役割(Debianシステムで実行されるSnifferなど)を説明しています。ネットワーク監視ツールの価値:高速障害場所:帯域幅の使用状況、遅延、パケット損失率など、ネットワーク障害の根本原因を迅速に特定し、トラブルシューティング時間を短縮できるようなネットワークメトリックのリアルタイム監視。

Debian syslogを学ぶ方法 Debian syslogを学ぶ方法 Apr 13, 2025 am 11:51 AM

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

Apacheサーバーを再起動する方法 Apacheサーバーを再起動する方法 Apr 13, 2025 pm 01:12 PM

Apacheサーバーを再起動するには、次の手順に従ってください。Linux/MacOS:sudo systemctl restart apache2を実行します。 Windows:Net Stop apache2.4を実行し、ネット開始apache2.4を実行します。 Netstat -A |を実行しますサーバーのステータスを確認するには、STR 80を見つけます。

See all articles