mysql如何设置复制账号权限

创建复制专用账号:使用CREATE USER命令创建用户并设置强密码;2. 授予REPLICATION SLAVE权限:通过GRANT授权并刷新权限;3. 配置主库启用Binlog:在配置文件中设置server-id和log-bin并重启服务;4. 查看主库Binlog状态:执行SHOW MASTER STATUS记录File和Position;5. 从库连接测试:验证账号可连通。仅需REPLICATION SLAVE权限即可实现主从复制。

在MySQL中设置复制账号权限,主要是为了主从复制(Master-Slave Replication)服务。这个账号用于从库连接主库并读取二进制日志(binlog),因此需要特定权限。

1. 创建复制专用账号

建议为复制创建一个独立的用户,便于管理与安全控制。登录主库的MySQL,执行以下命令:

CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';

说明:

  • 'repl' 是用户名,可自定义。
  • '%' 表示允许从任意IP连接,也可指定从库IP如 'repl'@'192.168.1.100' 提高安全性。
  • 'your_password' 应使用强密码。

2. 授予REPLICATION SLAVE权限

复制账号只需 REPLICATION SLAVE 权限即可正常工作:

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

说明:

  • ON *.* 表示所有数据库和表,这是必须的,因为复制涉及整个实例。
  • REPLICATION SLAVE 权限允许该用户请求主库的binlog内容。

授权后刷新权限:

FLUSH PRIVILEGES;

3. 配置主库启用Binlog

确保主库已开启二进制日志并配置了server-id:

编辑 my.cnf 或 my.ini 文件:

[mysqld]
server-id = 1
log-bin = mysql-bin

重启MySQL服务使配置生效。

4. 查看主库Binlog状态

执行以下命令查看当前binlog文件名和位置,用于从库配置:

SHOW MASTER STATUS;

记录 File 和 Position 的值。

5. 从库连接测试(可选)

可在从库上用如下命令测试账号是否可用:

mysql -h master_ip -u repl -p

成功登录即表示账号和网络正常。

基本上就这些。只要账号有REPLICATION SLAVE权限,且主库配置正确,从库就能通过CHANGE MASTER TO命令建立复制关系。安全起见,不要给复制账号额外权限。