Debian MySQL复制功能主要基于主从复制(Master-Slave Replication)机制,实现数据从主服务器到从服务器的同步,以下是核心要点:
主服务器配置
/etc/mysql/mysql.conf.d/mysqld.cnf,设置唯一 server-id 和开启二进制日志:[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name # 指定复制数据库(可选)
sudo systemctl restart mysql。CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;,记录 File 和 Position 。从服务器配置
/etc/mysql/mysql.conf.d/mysqld.cnf,设置唯一 server-id 和中继日志路径:[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log # 可选,用于从库本地记录binlog
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_log_file',
MASTER_LOG_POS=recorded_position;
START SLAVE;。验证复制状态
SHOW SLAVE STATUS\G,检查 Slave_IO_Running 和 Slave_SQL_Running 是否为 Yes,确保无错误。半同步复制(Semi-Sync Replication)
# 主库配置
plugin-load = "rpl_semi_sync_master=semisync_master.so"
rpl_semi_sync_master_enabled = 1
# 从库配置
plugin-load = "rpl_semi_sync_slave=semisync_slave.so"
rpl_semi_sync_slave_enabled = 1
并行复制(Parallel Replication)
slave_parallel_type = LOGICAL_CLOCK
slave_parallel_workers = 4 # 根据CPU核心数调整
GTID(全局事务标识)
gtid_mode = ON
enforce_gtid_consistency = ON
pt-table-checksum 工具校验主从数据差异,通过 pt-table-sync 修复。REPLICATION SLAVE),避免使用root用户。mysqldump 或 xtrabackup 工具。参考来源: