Replication allows data from a MySQL master database to be synchronized with one or more slave databases. The master records all data changes in its binary log. Slave databases connect to the master and receive the binary log transactions, which they then apply locally to stay synchronized with the master database. Replication can be used for load balancing reads across multiple slave servers or for high availability by failing over to a slave if the master fails.