GNU/Linux >> Linux の 問題 >  >> Linux

MySQLマスタースレーブレプリケーションを設定する方法

はじめに

クラウドコンピューティングでは、マスタースレーブデータレプリケーションとは、同じ情報を複数のサーバーに保存することを指します。 1台のサーバーがグループを制御し、他のデバイスが同じノード内で作業を処理します。

レプリケーションが必要になります:

  • ストレージが誤動作した場合にマスターMySQLデータベースを復元できる定期的な毎日のバックアップが必要な場合。
  • 情報を複数の人が複数のコンピューターに保存、調査、および変更する必要がある場合は常に。グループメンバーが変更の必要性を特定した場合は、ノードの指定されたマスターに移動する必要があります。

このガイドでは、MySQLでマスタースレーブレプリケーションを設定する方法について説明します。

前提条件

  • CentOSなどのLinuxベースのシステム
  • sudoのユーザーアカウント 特権
  • yumなどのパッケージインストーラー またはapt 、通常はデフォルトで含まれています
  • クラウドサーバーのプライベートIP(構成中のパブリックIPの帯域幅の課金を回避するため)

MySQLでマスター/スレーブデータベースレプリケーションを設定する手順

うん (Yellowdog Updater、Modified)は、RedHat PackageManagerLinuxシステム用のパッケージ管理ツールです。 .deb内 パッケージ、 yum ツールは通常、 aptに置き換えられます 道具。したがって、特定のコマンドで apt-get 通常、 yumを置き換えることができます 。

たとえば、インストールコマンドは yum install [package_name]のいずれかです。 またはapt-get install [package_name] 同じ結果になります。この記事は、RPMベースのLinuxディストリビューションを使用していることを前提としています。したがって、 yum コマンドが使用されます。

マスターMySQLデータベースは読み取り/書き込みモードで実行されます。その間、スレーブサーバーは読み取り専用として実行されます。さて、レプリケーションへ。

ステップ1:レプリケーション用にMySQLデータベースを構成する

mysqldumpを使用します スレーブデータベースへの情報のダンプと復元を実行するコマンド。このコマンドは、データをファイルにダンプして転送し、スレーブノードに復元します。

ステップ2:2つの別々のクラウドサーバーを作成する

このステップでは、特権ユーザーはクラウドコントロールにログインする必要があります。 CentOSでは、これはCentOS6ベースイメージを介して可能です。

適切なRAMを備えた2つのLinuxクラウドサーバーを作成し、それらに個別の名前を割り当てます。

ステップ3:すべてのソフトウェアパッケージを現在のバージョンに更新する

ユーザーとシステム管理者は、次のコマンドを使用して、RPMベースのLinuxシステム上のすべてのソフトウェアパッケージを更新できます。

yum update

ステップ4:MySQLをインストールする

RedHat Package Managerに基づくLinuxシステムの場合、次のコマンドを使用して、両方のクラウドサーバーにMySQLサーバーパッケージをインストールします。

yum install mysql-server

次のコマンドを使用して、システムが起動するたびに実行するようにサービスを設定します。

chkconfig mysqld on

ステップ5:MySQLを起動する

ここで、MySQLが正しくインストールされているかどうかを確認します。そうであった場合は、次のコマンドでサービスを開始できるはずです:

service mysqld start

ステップ6:MySQLサーバーのルートパスワードを設定する

MySQLの管理ユーザーパスワードを設定することをお勧めします。パスワードを設定するには、MySQLパッケージに付属する安全なインストールのスクリプトを実行し、すべてのY/nプロンプトにYで応答します。

または、 /usr/bin/mysqladmin -u root passwordを使用します スペースと新しいパスワードが続きます。および/usr/bin/mysqladmin -u root -h web01 password その後にスペースが続き、ここでも新しいパスワードが続きます。

ステップ7:データベースアクセス用にファイアウォールを構成する

TCPポート3306ルールの適用 ポート3306でのトラフィックを許可するファイアウォールポリシーを追加します。このルールにより、デバイス間の適切な通信が可能になります。

ファイアウォール構成を保存するには、次のコマンドを使用します:

service iptables save

ハッキングを避けるために、ポートを開くときは常に注意してください。

ステップ8:レプリケーション用にサーバーを構成する

各スレーブサーバーには、マスターサーバーに接続する方法が必要です。接続を確立するには、MySQLのユーザー名とパスワードが必要です。これには、マスターサーバーでMySQLユーザーアカウントを設定する必要があります。

レプリケーション専用のアカウントを確立することをお勧めします。この機能では、任意のアカウントにレプリケーションスレーブ特権を付与します。スレーブごとに同じアカウントまたは異なるアカウントを作成できます。アカウントのユーザー名とパスワードは、マスターリポジトリにプレーンテキストでいつでも見つけることができます。

レプリケーションという新しいユーザーアカウントを設定するには yoursite.com上の任意のホストからレプリケーションの目的で接続できるようにします ドメインの場合、マスターサーバーで次のコマンドを実行します:

mysql> CREATE USER 'replication'@'%.yoursite.com' IDENTIFIED BY [space followed by password]; then: mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.yoursite.com';

ステップ9:サーバー上のデータが一致することを確認する

マスターからスレーブサーバーにダンプしてデータを複製します。

フラッシュテーブルは、読み取りロックで設定する必要があります。マスターサーバーのデータベースはしてはいけません このステップで新しい変更を取り入れます。レプリケーションプロセスを開始する前にマスターサーバーにスレーブサーバーと調整するための情報がある場合は、次のアクションを実行します。

  • マスターサーバーでのコマンドの処理を停止します。
  • バイナリログ内のマスターサーバーのファイル名と現在の座標をコピーします(以下の手順10を参照)。これは、後でレプリケーション構成を完了するときに必要になります。
  • マスターサーバーがコマンドの実行を続行できるようにする前に、データをダンプしてください。

これらのすべてのアクションを慎重に実行して、データダンプがマスターサーバーの現在のデータと一致するようにします。そうしないと、スレーブデータベースが一致しないか破損します。

ステップ10:マスターデータベースのスナップショットを作成する

次のアクションを実行するときは、スナップショットを1つだけにしてください。 複数のスレーブサーバーを構成するために必要なのは、マスターデータベースの数だけです。

server-idをまだ構成していない場合 マスターサーバーでバイナリログを開始するには、サーバーをシャットダウンする必要があります。今すぐデータベースのスナップショットを撮ることができます。

データファイルをスレーブサーバーのディレクトリに移動します:

shell> tar xvf dbdump.tar

必要に応じて、ファイルの所有権とアクセス許可を確立します。スレーブサーバーへのアクセスと変更を許可する必要がある場合があります。 --skip-slave-startでスレーブを開始します レプリケーションの開始を回避するため。

マスターサーバーのホスト名とログイン資格情報を使用してスレーブサーバーを構成します。スレーブデータベースのマスターサーバーのレプリケーション座標を使用します。バイナリログファイルと位置を使用して、レプリケーションが開始するポイントにスレーブを誘導しています。

構成済みのマスターサーバーの場合、 mysqldumpを使用できます スナップショットを撮ります。

これで、スレーブ構成を更新できます。繰り返しになりますが、必ず --skip-slave-startでスレーブを起動してください。 レプリケーションの開始を回避するため。

次のコマンドでダンプをインポートします:

shell> mysql < fulldb.dump

ステップ11:スレーブスレッドを開始する

スレーブサーバーの更新をすぐに確認するには、次を使用します。

mysql> START SLAVE;

Linux
  1. CentOSでMySQLレプリケーションを設定する方法

  2. Ubuntu18.04でMariaDBマスタースレーブレプリケーションをセットアップする方法

  3. Dockerデーモンへのリモートアクセスを設定する方法

  1. MySQLソース-レプリカレプリケーションを設定する

  2. MySQL スレーブ データベースの構成方法

  3. シェル コマンドを使用して mysql データベースを削除する方法

  1. CentOS 7ノードを使用してMySQLマスタースレーブセットアップをセットアップする方法は?

  2. OracleLinuxでMySQLマルチマスターレプリケーションを構成する方法

  3. Ubuntu20.04にmysql8をインストールしてセットアップする方法