Chcete-li nastavit nastavení MySQL Master-Slave, postupujte podle následujících kroků.
Tyto kroky byly testovány a fungují na uzlech CentOS 7.x.
Chcete-li následovat, budete potřebovat alespoň dva výpočetní uzly. Na E2E Public Cloud můžete spustit výpočetní uzly na vyžádání. Kliknutím sem se dozvíte více.
Předpokládejme níže uvedené servery.
IP hlavního serveru:192.168.1.1
IP slave serveru:192.168.1.2
Krok 1:Příprava hlavního serveru
#yum -y update
Krok 2:Přidejte úložiště
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
Krok 3:Nainstalujte mysql-server 5.6 (stabilní verze)
yum -y install mysql-server
Krok 4:Spuštění/zastavení/restartování serveru MySQL
#systemctl start mysqld #systemctl stop mysqld #systemctl restart mysqld #systemctl status mysqld
Krok 5:Resetujte kořenové heslo 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
Krok 6:Nakonfigurujte MySQL na hlavním serveru
Přidejte následující položky do oddílu [mysqld].
# vim /etc/my.cnf server-id = 1 log-bin = /var/lib/mysql/mysql-bin Restart MySQL service #systemctl restart mysqld
Krok 7:Vytvoření a udělení přístupu k replikaci
# 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
Krok 8:Proveďte celý výpis databáze na obrazovce, aby proces výpisu probíhal v relaci, i když je terminálová relace uzavřena.
#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/
Krok 9:Připravte podřízený server
Podle kroků 1 až 5 sestavte podřízený server.
Přidejte následující položky do oddílu [mysqld].
# vim /etc/my.cnf server-id = 2 Restart MySQL service #systemctl restart mysqld
Poznámka:ID serveru by mělo být jedinečné.
Krok 10:Obnovte výpis
#mysql -u root -p /root/all-databases.sql
Krok 11:Seznamte se s MASTER_LOG_FILE a 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;
Poznámka:Podle kroků 1 až 5 vytvořte podřízený server.
Krok 12:Nakonfigurujte podřízený server
#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