MySQL复制通道的配置主要用于实现主从复制(Master-Slave Replication),通过该机制可以将一个MySQL服务器(主库)的数据自动同步到另一个或多个MySQL服务器(从库)。复制通道是MySQL 5.7及以上版本引入的概念,尤其在多源复制中用于管理每一个独立的复制流。以下是详细的配置方法。
启用主库的二进制日志
主库必须开启二进制日志(Binary Log),因为从库通过读取主库的binlog来同步数据。
编辑主库的配置文件 my.cnf(通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf) 在 [mysqld] 段添加以下配置:server-id=1
log-bin=mysql-bin
binlog-format=row
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
配置从库并设置复制通道
从库需要唯一标识,并配置连接主库的信息以建立复制通道。
编辑从库的 my.cnf 文件,在 [mysqld] 段添加:server-id=2
relay-log=relay-bin
log-slave-updates=ON
read-only=ON
SHOW MASTER STATUS;
记录 File 和 Position 的值。
建立复制连接
在从库上执行CHANGE MASTER TO命令,指定主库信息和创建复制通道。
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154,
MASTER_CONNECT_RETRY=10;
这条命令会默认创建一个名为“default”的复制通道。如果要配置多源复制,可指定通道名称:
CHANGE MASTER TO ... FOR CHANNEL 'channel_name';
启动复制:
START SLAVE;
或指定通道:START SLAVE FOR CHANNEL 'channel_name';
验证复制状态
检查复制是否正常运行:
SHOW SLAVE STATUS\G
或查看特定通道:SHOW SLAVE STATUS FOR CHANNEL='channel_name'\G
基本上就这些。确保网络互通、防火墙开放3306端口、账号权限正确,复制通道就能稳定运行。MySQL复制通道的管理让多源复制更加清晰可控,适合复杂架构场景。不复杂但容易忽略细节,比如server-id重复或binlog格式不匹配。
