#!/bin/bash
Step 1: Clone two virtual machines
Step 2: Open firewall and add port 3306
systemctl restart firewalld && firewall-cmd –zone=public –add-port=3306/tcp –permanent && firewall-cmd –reload && firewall-cmd –list-ports
Step 3: Configure MySQL on master and slave servers
Master server configuration
echo ‘[mysqld]’ >> /etc/my.cnf echo ‘log-bin=mysql-bin’ >> /etc/my.cnf echo ‘server-id=200’ >> /etc/my.cnf
Slave server configuration
echo ‘[mysqld]’ >> /etc/my.cnf echo ‘server-id=201’ >> /etc/my.cnf
Restart MySQL service
systemctl restart mysqld
Step 4: Create replication user, check master status, set up replication on slave, start replication and check slave status
Login to MySQL as root
mysql -uroot -p << EOF
Change password policies for ease of use
SET PASSWORD = ‘Root_12root’; set global validate_password.policy=0; set global validate_password.length=1; SET PASSWORD = ‘1234’;
Create replication user on master server
CREATE USER ‘xiaobai’@‘8.134.13.188’ IDENTIFIED BY ‘1234’; ALTER USER ‘xiaobai’@‘8.134.13.188’ IDENTIFIED WITH mysql_native_password BY ‘1234’; GRANT REPLICATION SLAVE ON . TO ‘xiaobai’@‘8.134.13.188’;
Check master status
SHOW MASTER STATUS;
Set up replication on slave server
CHANGE MASTER TO MASTER_HOST=‘175.178.93.143’, MASTER_USER=‘xiaobai’, MASTER_PASSWORD=‘1234’, MASTER_LOG_FILE=‘mysql-bin.000005’, MASTER_LOG_POS=1656;
Start replication on slave server
START SLAVE;
Check slave status
SHOW SLAVE STATUS \G; EOF
Step 5: Allow remote access to MySQL
mysql -uroot -p << EOF CREATE USER ‘root’@‘%’ IDENTIFIED BY ‘1234’; GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’; FLUSH PRIVILEGES; EOF
Exit the MySQL client and print done message
echo “Done setting up MySQL replication and remote access!”




