如何在mysql中配置复制账户_mysql复制账户设置

来源:这里教程网 时间:2026-02-28 20:24:52 作者:

在MySQL中配置复制(Replication)时,需要设置一个专门用于主从同步的复制账户。这个账户供从库(Slave)连接主库(Master)时使用,用于读取主库的二进制日志(binlog)。以下是详细的配置步骤和注意事项。

创建复制账户

登录到主库的MySQL服务器,使用具有

CREATE USER
REPLICATION SLAVE
权限的账号(如root)执行以下命令:

语法示例:

CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

说明:

'repl'
是复制账户的用户名,可自定义。
'%'
表示允许从任意IP连接,生产环境建议限制为从库的IP,例如
'repl'@'192.168.1.10'
更安全。
REPLICATION SLAVE
权限是必须的,它允许该账户读取主库的binlog日志。
执行后运行
FLUSH PRIVILEGES;
刷新权限(通常自动完成,但建议执行)。

启用主库的二进制日志

复制依赖于主库的binlog,因此必须确保主库已开启并正确配置。编辑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实例必须有唯一ID,主库设为1,从库设为其他值(如2)。
log-bin
:启用二进制日志,并指定文件前缀。
binlog-format
:推荐使用
ROW
格式,更安全且适合大多数场景。

修改后重启MySQL服务使配置生效。

获取主库binlog位置

在主库上执行以下命令,查看当前binlog文件名和位置,用于从库初始化同步:

SHOW MASTER STATUS;

输出示例:

+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1234 | | |
+------------------+----------+--------------+------------------+

记录下

File
Position
值,后续配置从库时会用到。

从库配置复制连接

在从库MySQL中执行以下命令,设置主库连接信息:

CHANGE MASTER TO
MASTER_HOST='主库IP地址',
MASTER_USER='repl',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=1234;

START SLAVE;

执行后检查从库状态:

SHOW SLAVE STATUS\G

重点关注以下两个字段:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

如果都为Yes,说明复制正常运行。

基本上就这些。只要主库开启binlog、创建了具备REPLICATION SLAVE权限的账户,并在从库正确配置连接参数,复制就能顺利建立。注意网络连通性和防火墙设置,确保从库能访问主库的3306端口。

相关推荐

热文推荐