RHEL 8 で MySQL マスター/スレーブ レプリケーションをセットアップする方法
MySQL レプリケーション は、あるサーバーのデータが別のバックアップ サーバーにリアルタイムで自動的にコピーまたは複製されるプロセスです。レプリケーションは冗長性と耐障害性を提供し、マスター サーバーで障害が発生した後でもデータを回復できるという安心感をユーザーに与えます。
このチュートリアルでは、RHEL 8 Linux 上で MySQL マスター/スレーブ レプリケーションを構成およびセットアップする方法を学習します。
前提条件
セットアップでは、次の IP アドレスを持つ RHEL 8 を実行する 2 台のサーバーを用意します。
Master = 173.82.120.14
Slave = 173.82.115.165
次に、RHEL 8 Linux 上で MySQL マスター/スレーブ レプリケーション セットアップを構成する方法を見てみましょう。
ステップ 1: MySQL をマスターサーバーとスレーブサーバーにインストールする
1. 最新バージョンの MySQL 8.x は、RHEL 8 のデフォルト リポジトリにすでに含まれており、次のコマンドを使用してインストールできます。 yumコマンド。
yum -y install @mysql
ステップ 2: マスターサーバーとスレーブサーバーで MySQL を保護する
インストール後、 インストールしたばかりのMySQL サービスを開始し、サーバーを起動するたびにサービスが自動的に開始されるようにする必要があります。したがって、次のコマンドを使用します。
systemctl enable mysqld
systemctl start mysqld
次に、root パスワードの設定、匿名ユーザーの削除、リモートでの root ログインの禁止、テスト データベースの削除、特権のリロードなど、いくつかのセキュリティ ベースの操作を伴うセキュリティ スクリプトを実行して、MySQL インストールを保護する必要があります。
mysql_secure_installation
プロンプトの残りの部分に進み、すべての質問に Yes
と答えて、ベスト セキュリティ プラクティスに従ってサーバーをセットアップします。
ステップ 3: MySQL マスターサーバーの構成
マスター サーバー構成から始めるには、次のコマンドを入力して MySQL 構成ファイルを開きます。
sudo vim /etc/my.cnf
mysqld
セクションに、以下に示す行を追加します。
bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin
最後に、MySQL サービスを再起動します。
sudo systemctl restart mysqld
次に、レプリケーション ユーザーを作成します。したがって、MySQL マスター サーバーに root ユーザーとしてログインし、パスワードを入力します。
sudo mysql -u root -p
次に、次のコマンドを実行してレプリカ ユーザーを作成すると同時に、ユーザーにスレーブ アクセスを許可します。マシンの IP アドレスを忘れずに使用してください。
mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';
ここで、バイナリのファイル名と位置を出力する次のコマンドを入力します。
mysql> SHOW MASTER STATUS\G
結果のファイル名 msql-bin.000002
とその位置 939
を忘れずにメモしてください。
ステップ 4: MySQL スレーブサーバーの構成
マスターをセットアップするプロセスと同様に、mysql スレーブ設定ファイルに次の変更を加える必要があります。
sudo vim /etc/my.cnf
構成ファイルの mysqld
セクションに次の行を追加します。
bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin
サーバーを再起動します。
sudo systemctl restart mysqld
次のステップは、マスター サーバーから複製するようにスレーブ サーバーを構成することです。 MySQLサーバーにログインします。
sudo mysql -u root -p
まず、レプリケーション スレッドを停止します。
mysql> STOP SLAVE;
ここで、マスター サーバーから複製するようにスレーブを構成する次のクエリを実行します。
mysql> CHANGE MASTER TO
-> MASTER_HOST='173.82.120.14' ,
-> MASTER_USER='replica' ,
-> MASTER_PASSWORD='Jupiter@2030' ,
-> MASTER_LOG_FILE='mysql-bin.000002' ,
-> MASTER_LOG_POS=939;
正しい IP ユーザー名とパスワードを使用していることを確認してください。また、マスターサーバーから取得したファイル名と位置を使用します。
最後に、次のコマンドを入力してスレーブ スレッドを開始します。
mysql> START SLAVE;
ステップ 5: MySQL マスター/スレーブ レプリケーションのテスト
この時点で、マスター サーバーとスレーブ サーバーの両方の構成が完了しました。次に、構成が機能しているかどうか、およびレプリケーションが実行できるかどうかを確認する必要があります。
これを行うには、マスター サーバーに移動し、MySQL データベース サーバーにログインします。
sudo mysql -u root -p
サンプルデータベースを作成します。
mysql> CREATE DATABASE replication_database;
ここでスレーブサーバーに移動し、再度 MySQL データベース サーバーにログインします。
sudo mysql -u root -p
次に、次のコマンドを使用してすべてのデータベースを一覧表示します。
mysql> SHOW DATABASES;
作成されたデータベースが表示されれば、MySQL マスター/スレーブ レプリケーション セットアップが機能していることになります。
結論
レプリケーションは非常に単純なプロセスであり、簡単に実行できます。このガイドでは、RHEL 8 Linux で MySQL マスターのレプリケーションをスレーブに作成する方法を学習しました。