MySQL主从复制是数据库备份的一种方式,它可以将主数据库中的所有更改异步地复制到一个或多个从数据库中。它有助于提高可靠性、灵活性和性能,同时降低数据丢失的风险。
在MySQL主从复制中,主数据库会向从数据库发送binlog日志。binlog日志记录了每个修改操作的详细信息,包括操作类型、时间、对象和数据。从数据库将这些binlog日志应用到自己的数据库中,从而实现数据的同步。
主服务器的my.cnf配置:
[mysqld]
log-bin=mysql-bin # 日志文件名
server-id=1 # 服务器唯一ID
从服务器的my.cnf配置:
[mysqld]
server-id=2 # 服务器唯一ID
relay-log=mysql-relay-bin # 中继日志
log-slave-updates # 记录从从服务器update操作
在主服务器上创建一个新的用户用于从服务器复制:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
在从服务器上配置主服务器信息:
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
在从服务器上启动主从复制:
SLAVE START;
可以使用以下命令检查主从复制的状态:
SHOW SLAVE STATUSG;