Bird
Raised Fist0
MySQLquery~5 mins

Replication basics in MySQL

Choose your learning style10 modes available
Introduction

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

  1. Step 1: Understand replication concept

    Replication means copying data from one database (called master) to another (called slave) automatically.
  2. Step 2: Identify the main purpose

    The main goal is to keep data synchronized between servers without manual copying.
  3. Final Answer:

    To copy data automatically from one database server to another -> Option A
  4. 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

  1. Step 1: Recall replication start command

    In MySQL, the command to start the slave replication process is START SLAVE.
  2. Step 2: Check other options

    Other options like START REPLICATION, BEGIN SLAVE, or RUN SLAVE are not valid MySQL commands.
  3. Final Answer:

    START SLAVE -> Option A
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    Sets the slave to connect to the master at IP 192.168.1.10 using user replica -> Option D
  4. 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

  1. Step 1: Check slave configuration

    If the slave is not configured with CHANGE MASTER TO, it does not know which master to connect to.
  2. Step 2: Understand replication start requirements

    Without proper master info, START SLAVE cannot initiate replication, even if master is up or password is set.
  3. Final Answer:

    The slave has not been configured with CHANGE MASTER TO -> Option C
  4. 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

  1. Step 1: Understand replication filtering

    MySQL uses replication filters like REPLICATE_DO_DB to replicate only specific databases.
  2. Step 2: Identify correct syntax

    The correct syntax uses CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales'); with parentheses around the database name.
  3. Final Answer:

    CHANGE REPLICATION FILTER REPLICATE_DO_DB = ('sales'); -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard