Replication helps copy data from one database to another automatically. This keeps data safe and available in many places.
You want a backup copy of your database in case the main one fails.
You need to share data across different locations or servers.
You want to balance the load by sending read requests to copies.
You want to keep a reporting database separate from the main one.
You want to test changes on a copy without affecting the main data.
Syntax
MySQL
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='log_file_name',
MASTER_LOG_POS=log_position;
This command sets up the slave to connect to the master database.
You need to create a special user on the master for replication.
Examples
This sets the slave to connect to the master at IP 192.168.1.100 using the user 'repl_user'. It starts reading from the binary log file 'mysql-bin.000001' at position 154.
MySQL
CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='repl_user',
MASTER_PASSWORD='secret',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
This command starts the replication process on the slave server.
MySQL
START SLAVE;
This shows the current status of the slave replication, including if it is running and any errors.
MySQL
SHOW SLAVE STATUS\G
Sample Program
This example sets up a slave on the same machine (localhost) with user 'replicator'. It starts replication from the specified log file and position, then starts the slave and shows its status.
MySQL
CHANGE MASTER TO
MASTER_HOST='localhost',
MASTER_USER='replicator',
MASTER_PASSWORD='pass123',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=120;
START SLAVE;
SHOW SLAVE STATUS\G
OutputSuccess
Important Notes
Make sure the replication user has REPLICATION SLAVE permission on the master.
Binary logging must be enabled on the master for replication to work.
Check the slave status often to catch and fix errors quickly.
Summary
Replication copies data from one database (master) to another (slave) automatically.
Use CHANGE MASTER TO to configure the slave connection to the master.
Start replication with START SLAVE and check status with SHOW SLAVE STATUS.
Practice
(1/5)
1. What is the main purpose of MySQL replication?
easy
A. To copy data automatically from one database server to another
B. To create backups manually on the same server
C. To speed up SQL query execution on a single server
D. To encrypt data during transmission
Solution
Step 1: Understand replication concept
Replication means copying data from one database (called master) to another (called slave) automatically.
Step 2: Identify the main purpose
The main goal is to keep data synchronized between servers without manual copying.
Final Answer:
To copy data automatically from one database server to another -> Option A
Quick Check:
Replication = automatic data copy [OK]
Hint: Replication means automatic data copying between servers [OK]
Common Mistakes:
Confusing replication with backup
Thinking replication speeds up queries on one server
Assuming replication encrypts data
2. Which command is used to start replication on a MySQL slave server?
easy
A. START SLAVE
B. START REPLICATION
C. BEGIN SLAVE
D. RUN SLAVE
Solution
Step 1: Recall replication start command
In MySQL, the command to start the slave replication process is START SLAVE.
Step 2: Check other options
Other options like START REPLICATION, BEGIN SLAVE, or RUN SLAVE are not valid MySQL commands.
Final Answer:
START SLAVE -> Option A
Quick Check:
Start replication = START SLAVE [OK]
Hint: Use START SLAVE to begin replication on slave server [OK]
Common Mistakes:
Using incorrect commands like START REPLICATION
Confusing with transaction commands
Forgetting to start the slave after setup
3. Given the command CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='replica', MASTER_PASSWORD='pass'; executed on a slave, what does it do?
medium
A. Deletes the current master configuration
B. Starts replication immediately with given credentials
C. Creates a new master server at 192.168.1.10
D. Sets the slave to connect to the master at IP 192.168.1.10 using user replica
Solution
Step 1: Understand CHANGE MASTER TO command
This command configures the slave server to connect to a master server with specified host and user credentials.
Step 2: Analyze given parameters
It sets the master host IP to 192.168.1.10 and uses the user 'replica' with password 'pass' for connection.
Final Answer:
Sets the slave to connect to the master at IP 192.168.1.10 using user replica -> Option D
Quick Check:
CHANGE MASTER TO = configure slave connection [OK]
Hint: CHANGE MASTER TO sets slave's master connection info [OK]
Common Mistakes:
Thinking it starts replication immediately
Assuming it creates a new master server
Believing it deletes master config
4. You run START SLAVE; but replication does not start. Which of these is a likely cause?
medium
A. The master server is down
B. The slave user password is empty
C. The slave has not been configured with CHANGE MASTER TO
D. The slave server is running MySQL version 8
Solution
Step 1: Check slave configuration
If the slave is not configured with CHANGE MASTER TO, it does not know which master to connect to.
Step 2: Understand replication start requirements
Without proper master info, START SLAVE cannot initiate replication, even if master is up or password is set.
Final Answer:
The slave has not been configured with CHANGE MASTER TO -> Option C
Quick Check:
Missing CHANGE MASTER TO blocks replication start [OK]
Hint: Configure slave with CHANGE MASTER TO before START SLAVE [OK]
Common Mistakes:
Assuming START SLAVE works without configuration
Blaming MySQL version without checking config
Ignoring master server status
5. You want to set up a slave that replicates only the database named sales. Which command helps you filter replication to this database?
hard
A. CHANGE MASTER TO MASTER_DB='sales';
B. CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales');
C. SET REPLICATION FILTER TO 'sales';
D. CHANGE REPLICATION FILTER REPLICATE_DO_DB = 'sales';
Solution
Step 1: Understand replication filtering
MySQL uses replication filters like REPLICATE_DO_DB to replicate only specific databases.
Step 2: Identify correct syntax
The correct syntax uses CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales'); with parentheses around the database name.
Final Answer:
CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales'); -> Option B
Quick Check:
Use REPLICATE_DO_DB with parentheses for filtering [OK]
Hint: Use CHANGE REPLICATION FILTER with REPLICATE_DO_DB and parentheses [OK]
Common Mistakes:
Using non-existent commands like SET REPLICATION FILTER
Omitting parentheses around database name
Trying to filter with CHANGE MASTER TO
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.