mysql主从连接,提供文档理解

本文详细解析了MySQL中GRANT REPLICATION SLAVE语句的用法,特别是'slave'@'%'的含义。'slave'代表角色而非用户,用于赋予特定权限以建立主从数据库连接。'%'代表任意主机,实际应用中可根据需求指定具体IP。文中还介绍了如何创建用户并授予权限,以及GRANT和ON子句的区别。最后提供了官方文档链接以供深入学习。
摘要由CSDN通过智能技术生成

zz主从连接,网上的教程有很多,但只告诉你怎么做,却没告诉你怎么来的,本文对建立之中大家可能有问题的一些内容进行解答:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';

这句代码应该是网上流传最多的,其中的解释却很少。本文对其进行解释,如果你需要对某一对象授予权限,那么你需要做的是采用GRANT,而在建立主从建构上来说,官方说明是采用GRANT REPLICATION SLAVE ON *.*,这一段使我们不需要改的,而对于'slave'@'%'则是本文需要重点说明的。

slave'@'%'中的slave代表的是一种角色,其有区别与用户,用户比如我们常见的root用户其在建立时就已经有许多权限,而角色对象,你可以看成是一种用于整体赋给用户的权限集,比如我们用slave角色来完成主从的连接,通过给它一定的权限与验证方式,来使得主数据库与从数据库建立连接。这里验证方式之后再说,对于‘%’它其实是本机ip的省略,当然如果不在一台主机建立主从连接时,我们也需要对其以ip的方式进行扩充。比如官方文档给出的例子:

mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';

而ON子句区分语句是否授予特权或角色:使用ON,该语句授予特权。如果没有ON,则该语句授予角色。

而identified by表示所授予的权限具体的例子,这里引用文档:

假设您最初需要一个开发人员帐户、两个需要只读访问权限的用户帐户和一个需要读/写访问权限的用户帐户。用于 CREATE USER创建帐户:


CREATE USER 'dev1'@'localhost' IDENTIFIED BY 'dev1pass'; 
CREATE USER 'read_user1'@'localhost' IDENTIFIED BY 'read_user1pass'; 
CREATE USER 'read_user2'@'localhost' IDENTIFIED BY 'read_user2pass'; 
CREATE USER 'rw_user1'@'localhost' IDENTIFIED BY 'rw_user1pass';

 当然也可以用授予权限的方式来进行。

文末赋予文档连接:

https://dev.mysql.com/doc/refman/8.0/en/sql-data-definition-statements.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值