在MySQL中配置主从复制(Replication)时,需要创建一个专门用于复制的账号,该账号供从库(Slave)连接主库(Master)并读取二进制日志(binlog)。以下是创建和配置Replication账号的步骤:
1. 在主库上创建Replication专用账号
登录到主库的MySQL命令行,使用root或具有SUPER权限的用户执行以下命令:
CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
其中:
'repl' 是复制账号的用户名,可自定义。 '%' 表示允许从任意IP连接,生产环境建议限制为从库的IP,如 'repl'@'192.168.1.10'。 REPLICATION SLAVE 是复制所需的最小权限。2. 刷新权限使配置生效
FLUSH PRIVILEGES;
确保新创建的用户和权限立即生效。
3. 配置主库的my.cnf文件
编辑主库的MySQL配置文件(通常位于 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf),确保包含以下内容:
[mysqld] server-id = 1 log-bin = mysql-bin binlog-format = ROWserver-id:每台MySQL实例必须唯一,主库设为1。 log-bin:启用二进制日志,复制的基础。 binlog-format:推荐使用ROW格式,更安全且兼容性强。
修改后重启MySQL服务或动态生效(部分配置需重启)。
4. 查看主库binlog状态
执行以下命令查看当前binlog文件名和位置,后续配置从库时需要:
SHOW MASTER STATUS;
记录输出中的 File 和 Position 值。
5. 从库配置中使用该账号
在从库上执行:
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234;
启动复制:
START SLAVE;
检查状态:
SHOW SLAVE STATUS\G
基本上就这些。账号权限要最小化,网络要通,防火墙开放3306端口,主从时间同步也很重要。
