MySQL Replication 相关的数据库用户权限

为了建立replication,我们需要创建哪几个账号,分别赋予什么样的权限?

假设,服务器A为master,服务器B为slave。在master上需要创建一个账号 'replica_slave_user'@'slave host', 具有replication slave的权限,允许slave服务器连接到master服务器,并获得更新log。在slave上需要创建一个账号'replica_admin_user'@'admin host',具有super权限,能建立replication,启动或停止replication等;此外,还应该赋予该用户Replication Client的权限,能查看slave status等信息。

上述内容的语句如下

# on master server A
mysql> grant replication slave on *.* to 'replica_slave_user'@'slave host'
     > identified by 'complex password';

# on slave server B
mysql> grant replication client, super on *.* to
     > 'replica_admin_user'@'admin host' identified by 'complex password';

注意,这里的 admin host 指的是连接到mysql服务器的工作机。

与replication相关的几个权限,允许用户执行哪些命令呢?

Replication client
  • show master status
  • show slave status
  • show binary logs
Replication Slave
允许slave server从master server获得更新
Super
  • start slave;
  • stop slave;
  • change master to;
  • purge binary logs; binlog;
  • super还允许执行更多的管理命令,但与replication无关