mysql如何配置replication账号

创建Replication账号需在主库执行CREATE USER并授权REPLICATION SLAVE,刷新权限后配置my.cnf启用binlog,记录SHOW MASTER STATUS的File和Position,在从库用CHANGE MASTER TO指定主库信息并启动复制,确保网络、防火墙及时间同步。

在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 = ROW
  • server-id:每台MySQL实例必须唯一,主库设为1。
  • log-bin:启用二进制日志,复制的基础。
  • binlog-format:推荐使用ROW格式,更安全且兼容性强。

修改后重启MySQL服务或动态生效(部分配置需重启)。

4. 查看主库binlog状态

执行以下命令查看当前binlog文件名和位置,后续配置从库时需要:

SHOW MASTER STATUS;

记录输出中的 FilePosition 值。

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端口,主从时间同步也很重要。