MySQL Master Slave Replication in Windows using XAMPP MySQL
inchirags@gmail.com Chirag's MySQL Tutorial https://www.chirags.in ************************************************************************
MySQL Master Slave Replication in Windows *************************************************************************
YouTube Video: https://www.youtube.com/watch?v=kwBZldY-mdg
Database replication is the frequent electronic copying of data from a database in one computer or server to a database in another.
In this example, 02 XAMPP servers are being used.
Master – Server IP (Ex. 192.168.157.128) for demo I have localhost.
Slave – Server IP (Ex. 192.168.157.129)
You need to install XAMPP with MySQL server on both master and slave machine or Install Two XAMPP in Same Machine.
PART 1 - In master server
-----------------------------------------------
Step 1. Login to Master Server.
Edit & Modify the Configuration file of MySQL.
#log-bin Configuration in my.ini
log-bin="C:/mysql_master_logs/log-bin.log"
server-id = 1
# bind-address = 127.0.0.1 #comment this line if you want to remotely access your server
Step 2. Restart MySQL Server. Step 3. Login to MySQL Server.
# mysql -u root -p
Step 4. Create a new user for Replication and specify the Password to that user.
MariaDB [(none)]> CREATE USER 'mysqlrepli'@'localhost' IDENTIFIED BY 'admin@123';
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'mysqlrepli'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
Example :
MariaDB [(none)]> CREATE USER 'replication_user'@'192.168.157.128' IDENTIFIED BY 'replica_password';
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'192.168.157.128';
Step 5. binary logging # check binary logging
MariaDB [(none)]> show global variables like 'log_bin';
# View the binary log location
MariaDB [(none)]> show global variables like '%log_bin%';
# Show binary logs
MariaDB [(none)]> show binary logs;
Step 6. Execute below command to Lock Tables & take backup and view the File & Position of Master Server.
MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;
C:\path >mysqldump -u root -p –all-databases –master-data > data.sql
Note: Path will be mysqldump.exe path.. It will be inside the bin folder.
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 764 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
PART - 2 - In Slave Server
------------------------------------------
Step 7. Login to Slave Server. Edit & Modify the Configuration file of MySql Server.
# Find the following line:
bind-address = 127.0.0.1
# Replace it with the following line:
bind-address = Slave-Server-IP
#log-bin Configuration in my.ini
log-bin="C:/mysql_slave_logs/log-bin.log"
server-id = 2
# Restart MySQL Server Step
8. Login to MySQL in Slave Server.
# mysql -u root -p
Step 9. Import Data Dump
mysql -u root -p < data.sql
Step 10. Specify the following details as given below & make sure to Replace the following settings with your settings.
MASTER_HOST : IP Address of Master server
MASTER_USER : Replication User of Master server that we had created in previous steps.
MASTER_PASSWORD : Replication User Password of Master server that we had created in previous steps.
MASTER_LOG_FILE : Your Value of Master Log File of Master server.
MASTER_LOG_POS : Your Value of Master Log Position of Master server.
MariaDB [(none)]> STOP SLAVE;
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST = 'localhost', MASTER_USER = 'mysqlrepli', MASTER_PASSWORD = 'admin@123', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 420;
MariaDB [(none)]> START SLAVE;
MariaDB [(none)]> show databases;
MariaDB [(none)]> SHOW SLAVE STATUS;
### Don’t forget to unlock the tables.
MariaDB [(none)]> UNLOCK TABLES;
PART - 3 - Testing for replication work
-------------------------------------------------------------
Step 10. Login to Master Server. Login to MySQL Server
# mysql -u root -p
Step 11. For testing a Replication we need to create a new database, it will automatically replicate on Slave Server.
MariaDB [(none)]> create database chiragdb;
Step 12. Login to Slave Server. Login to MySQL Server
# mysql -u root -p
Step 13. View your Replicated Database by using below command.
MariaDB [(none)]> show databases;
Let me know if you'd like further assistance!
For any doubts and query, please write on YouTube video comments section.
Note : Flow the Process shown in video.
😉Subscribe and like for more videos:
💛Don't forget to, 💘Follow, 💝Like, 💖Share 💙&, Comment
Thanks & Regards,
Chitt Ranjan Mahto "Chirag"
_____________________________________________________________________
Note: All scripts used in this demo will be available in our website.
Link will be available in description.
#MySQLTutorial, #ChiragsMySQLTutorial, #CreateDatabaseinMySQL, #CreateTablesinMySQL, #MasterSlaveReplicationinMySQL, #MySQLReplication, #MySQLMasterSlave, #InstallMySQLinUbuntu, #InstallMySQLinLinux, #InstallMySQLinWindows