MySQL Replication

Abstract

This is the MySQL Replication extract from the MySQL 5.6 Reference Manual.

For legal information, see the Legal Notices.

For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL users.

Document generated on: 2020-07-08 (revision: 66529)


Table of Contents

Preface and Legal Notices
1 Replication
2 Replication Configuration
2.1 How to Set Up Replication
2.1.1 Setting the Replication Master Configuration
2.1.2 Setting the Replication Slave Configuration
2.1.3 Creating a User for Replication
2.1.4 Obtaining the Replication Master Binary Log Coordinates
2.1.5 Creating a Data Snapshot Using mysqldump
2.1.6 Creating a Data Snapshot Using Raw Data Files
2.1.7 Setting Up Replication with New Master and Slaves
2.1.8 Setting Up Replication with Existing Data
2.1.9 Introducing Additional Slaves to an Existing Replication Environment
2.1.10 Setting the Master Configuration on the Slave
2.2 Replication Formats
2.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication
2.2.2 Usage of Row-Based Logging and Replication
2.2.3 Determination of Safe and Unsafe Statements in Binary Logging
2.3 Replication with Global Transaction Identifiers
2.3.1 GTID Concepts
2.3.2 Setting Up Replication Using GTIDs
2.3.3 Using GTIDs for Failover and Scaleout
2.3.4 Restrictions on Replication with GTIDs
2.3.5 Disabling GTID Transactions
2.4 Replication and Binary Logging Options and Variables
2.4.1 Replication and Binary Logging Option and Variable Reference
2.4.2 Replication Master Options and Variables
2.4.3 Replication Slave Options and Variables
2.4.4 Binary Log Options and Variables
2.4.5 Global Transaction ID Options and Variables
2.5 Common Replication Administration Tasks
2.5.1 Checking Replication Status
2.5.2 Pausing Replication on the Slave
3 Replication Solutions
3.1 Using Replication for Backups
3.1.1 Backing Up a Slave Using mysqldump
3.1.2 Backing Up Raw Data from a Slave
3.1.3 Backing Up a Master or Slave by Making It Read Only
3.2 Handling an Unexpected Halt of a Replication Slave
3.3 Using Replication with Different Master and Slave Storage Engines
3.4 Using Replication for Scale-Out
3.5 Replicating Different Databases to Different Slaves
3.6 Improving Replication Performance
3.7 Switching Masters During Failover
3.8 Setting Up Replication to Use Encrypted Connections
3.9 Semisynchronous Replication
3.9.1 Semisynchronous Replication Administrative Interface
3.9.2 Semisynchronous Replication Installation and Configuration
3.9.3 Semisynchronous Replication Monitoring
3.10 Delayed Replication
4 Replication Notes and Tips
4.1 Replication Features and Issues
4.1.1 Replication and AUTO_INCREMENT
4.1.2 Replication and BLACKHOLE Tables
4.1.3 Replication and Character Sets
4.1.4 Replication and CHECKSUM TABLE
4.1.5 Replication of CREATE SERVER, ALTER SERVER, and DROP SERVER
4.1.6 Replication of CREATE ... IF NOT EXISTS Statements
4.1.7 Replication of CREATE TABLE ... SELECT Statements
4.1.8 Replication of CURRENT_USER()
4.1.9 Replication with Differing Table Definitions on Master and Slave
4.1.10 Replication and DIRECTORY Table Options
4.1.11 Replication of DROP ... IF EXISTS Statements
4.1.12 Replication and Floating-Point Values
4.1.13 Replication and FLUSH
4.1.14 Replication and Fractional Seconds Support
4.1.15 Replication and System Functions
4.1.16 Replication of Invoked Features
4.1.17 Replication and LIMIT
4.1.18 Replication and LOAD DATA
4.1.19 Replication and max_allowed_packet
4.1.20 Replication and MEMORY Tables
4.1.21 Replication of the mysql System Database
4.1.22 Replication and the Query Optimizer
4.1.23 Replication and Partitioning
4.1.24 Replication and REPAIR TABLE
4.1.25 Replication and Reserved Words
4.1.26 Replication and Master or Slave Shutdowns
4.1.27 Slave Errors During Replication
4.1.28 Replication and Server SQL Mode
4.1.29 Replication and Temporary Tables
4.1.30 Replication Retries and Timeouts
4.1.31 Replication and Time Zones
4.1.32 Replication and Transactions
4.1.33 Replication and Triggers
4.1.34 Replication and TRUNCATE TABLE
4.1.35 Replication and Variables
4.1.36 Replication and Views
4.2 Replication Compatibility Between MySQL Versions
4.3 Upgrading a Replication Setup
4.4 Troubleshooting Replication
4.5 How to Report Replication Bugs or Problems
5 Replication Implementation
5.1 Replication Implementation Details
5.2 Replication Relay and Status Logs
5.2.1 The Slave Relay Log
5.2.2 Slave Status Logs
5.3 How Servers Evaluate Replication Filtering Rules
5.3.1 Evaluation of Database-Level Replication and Binary Logging Options
5.3.2 Evaluation of Table-Level Replication Options
5.3.3 Interactions Between Replication Filtering Options