MySQLマスター/スレーブのセットアップをセットアップするには、以下の手順に従ってください。
これらの手順はテスト済みであり、CentOS7.xノードで機能しています。
従うには、少なくとも2つの計算ノードが必要です。 E2Eパブリッククラウドでオンデマンドでコンピューティングノードを起動できます。詳細については、ここをクリックしてください。
以下のサーバーを想定しましょう。
マスターサーバーIP:192.168.1.1
スレーブサーバーIP:192.168.1.2
ステップ1:マスターサーバーを準備する
#yum -y update
ステップ2:リポジトリを追加する
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
ステップ3:mysql-server 5.6(安定バージョン)をインストールします
yum -y install mysql-server
ステップ4:MySQLサーバーを起動/停止/再起動します
#systemctl start mysqld #systemctl stop mysqld #systemctl restart mysqld #systemctl status mysqld
ステップ5:MySQLルートパスワードをリセットする
#mysql_secure_installation Enter current password for root (enter for none): Enter a secure password Set root password? [Y/n] y New password: Re-enter new password: To Remove anonymous users Remove anonymous users? [Y/n] y To disable remote root login Disallow root login remotely? [Y/n] y To reload privileges Reload privilege tables now? [Y/n] y
ステップ6:マスターサーバーでMySQLを構成する
[mysqld]セクションに次のエントリを追加します。
# vim /etc/my.cnf server-id = 1 log-bin = /var/lib/mysql/mysql-bin Restart MySQL service #systemctl restart mysqld
ステップ7:レプリケーションアクセスを作成して許可する
# mysql -u root -p mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'192.168.1.2' IDENTIFIED BY replication-password; mysql> FLUSH PRIVILEGES; mysql> \q
ステップ8:すべてのデータベースダンプを画面に表示して、ターミナルセッションが閉じた場合でも、セッションでダンププロセスが実行されるようにします。
#screen -S#mysqldump -u root -p --all-databases --master-data > /root/all-databases.sql Sync the dump to the slave server. #scp /root/all-databases.sql root@ :/root/ Or #rsync -arvP /root/all-databases.sql root@ :/root/
ステップ9:スレーブサーバーを準備する
手順1〜5に従って、スレーブサーバーを構築します。
[mysqld]セクションに次のエントリを追加します。
# vim /etc/my.cnf server-id = 2 Restart MySQL service #systemctl restart mysqld
注:server-idは一意である必要があります。
ステップ10:ダンプを復元する
#mysql -u root -p /root/all-databases.sql
ステップ11:MASTER_LOG_FILEとMASTER_LOG_POSについて理解する
#head -n 30 /root/all-databases.sql | grep MASTER_LOG_FILE CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=120;
注:ステップ1から5に従って、スレーブサーバーを作成します。
ステップ12:スレーブサーバーを構成する
#mysql -u root -p mysql> SLAVE STOP; mysql> CHANGE MASTER TO MASTER_HOST='[192.168.1.1]', MASTER_USER='['slave_user']', MASTER_PASSWORD='[replication-password]', MASTER_LOG_FILE='[file-listed-on-master-status]', MASTER_LOG_POS=[log-position-listed-on-master-status]; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G The above command will show the complete slave status and verify the Slave_IO_Running and Slave_SQL_Running should be Yes. Slave_IO_Running: Yes Slave_SQL_Running: Yes