mysql如何配置复制账号_mysql复制账号创建与配置

首先创建专用复制账号并授予权限,再配置主库开启binlog和唯一server-id,接着获取主库binlog位置信息,最后在从库执行CHANGE MASTER TO并启动复制,确保Slave_IO_Running和Slave_SQL_Running为Yes。

在MySQL主从复制环境中,配置一个专用的复制账号是必不可少的步骤。这个账号用于从库连接主库并读取二进制日志(binlog),实现数据同步。下面详细介绍如何创建和配置MySQL复制账号。

1. 创建复制账号

登录到MySQL主服务器,使用具有SUPERREPLICATION SLAVE权限的账户(如root)执行以下SQL命令:

CREATE USER 'repl'@'从库IP' IDENTIFIED BY '安全密码';

例如,如果从库的IP是192.168.1.100,可以这样创建:

  • CREATE USER 'repl'@'192.168.1.100' IDENTIFIED BY 'repl_password_123';

你也可以允许该账号从任意IP连接(不推荐生产环境):

  • CREATE USER 'repl'@'%' IDENTIFIED BY 'repl_password_123';

2. 授予复制权限

创建账号后,需要赋予其复制权限。执行以下命令:

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库IP';

继续以上例为例:

  • GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.100';

该权限允许从库请求主库的binlog并进行复制。

3. 刷新权限

执行以下命令使权限立即生效:

  • FLUSH PRIVILEGES;

4. 配置主库(my.cnf)

确保主库已启用二进制日志并设置唯一的server-id。编辑MySQL配置文件(通常为/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf):

[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW

重启MySQL服务使配置生效:

  • systemctl restart mysql

5. 获取主库binlog位置

在主库上执行:

  • SHOW MASTER STATUS;

记录输出中的FilePosition值,从库配置时需要使用。

6. 从库配置复制

在从库上执行CHANGE MASTER TO命令,指定复制账号和主库信息:

CHANGE MASTER TO
  MASTER_HOST='主库IP',
  MASTER_USER='repl',
  MASTER_PASSWORD='repl_password_123',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=154;

然后启动复制:

  • START SLAVE;

查看复制状态:

  • SHOW SLAVE STATUS\G

确认Slave_IO_RunningSlave_SQL_Running都为Yes。

基本上就这些。只要账号权限正确、网络通畅、主从配置一致,复制就能正常运行。