MySQLレプリケーションプロセスでは、1つのサーバーデータがリアルタイムで別のバックアップサーバーに自動的にコピーされます。データベースレプリケーションは、フォールトトレランスと冗長性を提供します。マスターに障害が発生した場合、データは別のサーバーから回復されます。
以下は、RHEL 7でMySQLマスタースレーブレプリケーションを構成する手順です。これを行うには、異なるIPアドレスを持つ2台のサーバーが必要です。
- Yumコマンドを使用して両方のサーバーにMySQLサーバーをダウンロードしてインストールします。
# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm # sudo yum install mysql-server - MySQLサーバーをインストールしたら、起動して起動時に起動できるようにします。
sudo systemctl enable mysqld
sudo systemctl start mysqld - 以下のコマンドを使用して、一時的なmysqlサーバーのパスワードを確認します。
# sudo grep 'temporary password' /var/log/mysqld.log
- 以下のコマンドを実行して、MySQLデータベースを強化または保護します。
# sudo mysql_secure_installation
- 手順(3)で取得した一時パスワードを入力し、デフォルトのパスワードを変更します。
- 最高のセキュリティを提供するには、すべての回答にyを押します。
ステップ1:マスターサーバーを構成する
- お気に入りのエディターを使用してMySQL構成ファイルを開きます。
# sudo vim /etc/my.cnf
- mysqldセクションに以下の行を追加します。
# bind-address = Your Master server IP Address
server-id = 1
log_bin =mysql-bin
- mysqlサービスを再起動します。
# sudo systemctl restart mysqld
- レプリケーションユーザーを作成するには、rootを使用してmysqlサーバーにログインし、パスワードを入力します。
# sudo mysql -u root -p
- 以下のコマンドでレプリカユーザーを作成し、スレーブにユーザーへのアクセスを許可します。サーバーのIPアドレスを使用していることを確認してください。
mysql> CREATE USER 'replica'@'173.248.174.102' IDENTIFIED BY '[email protected]';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.248.174.102';
- 以下のコマンドを押して、バイナリのファイル名と位置を取得します。
mysql> SHOW MASTER STATUS\G
- マスターファイル名mysql-bin.000034とその位置154を書き留める必要があります。
ステップ2:スレーブサーバーを構成する:
- お気に入りのエディターを使用してMySQL構成ファイルを開きます。
sudo vim /etc/my.cnf
- mysqldセクションに以下の行を追加します。
bind-address = Your Slave server IP Address
server-id = 2
log_bin =mysql-bin - mysqlサービスを再起動します。
sudo systemctl restart mysqld
- マスターサーバーから複製するようにスレーブサーバーを構成しましょう。 MySQLサーバーにログインします。
sudo mysql -u root -p
mysql> STOP SLAVE;
- 以下のクエリを実行して、マスターサーバーを複製するようにスレーブサーバーを構成します。
mysql> CHANGE MASTER TO
-> MASTER_HOST='173.248.174.101',
-> MASTER_USER='replica',
-> MASTER_PASSWORD='[email protected]',
-> MASTER_LOG_FILE='mysql-bin.000034',
-> MASTER_LOG_POS=154;
- スレーブサーバーを起動します。
mysql> START SLAVE;
ステップ3:MySQLマスター/スレーブレプリケーションをテストします:
マスターサーバーとスレーブサーバーの構成は完了です。次に、両方のサーバーでレプリケーションをテストします。
- マスターサーバーに移動し、以下のコマンドを押します。
sudo mysql -u root -p
- テストデータベースを作成します。
mysql> CREATE DATABASE replica_database;
- スレーブサーバーに移動し、MySQLデータベースサーバーにログインします。
sudo mysql -u root -p
- 以下のコマンドを使用してデータベースを一覧表示します。
mysql> SHOW DATABASES;
すべての構成が正しい場合は、マスターで作成されたデータベースが表示されます。これです。 MySQLマスター/スレーブレプリケーションは正常に機能します。