Mysql主从复制原理、用户与权限管理笔记

其它
2018年06月29日
0

主从复制

  • 主master

  • 从slave

  1. 主服务器要配置binlog
  2. 从服务器要配置relaylog
  3. 从服务器如何有权读取masterbinlog?(binlog是比较敏感的),授权,master要授予slave账号
  4. 从服务器用账号连接master

数据库复制replication的实现原理

  1. 主服务器凡运行语句,都产生一个二进制日志binlog是比较敏感的
  2. 从服务器不断读取主服务器的binlog
  3. 从服务器从主服务器读取到的binlog转换为自身可执行的relaylog
  4. 执行relaylog

实现步骤:

  1. 首先确保主服务器打开二进制日志功能.这样主服务器一旦有数据变化,立即产生二进制日志.
  2. 从服务器也需要开启二进制日志和relay日志功能.这样可以从主服务器读取binlog并产生relaylog
  3. 在主服务器建立一个服务器账号,并授予读binlog的权限.
  4. 指定从服务器对应的主服务器,开启从服务器.

用户与权限管理

sql
-- mysql 用户与权限管理 -- 用户连接到mysql,并做各种查询. -- [用户] [服务器] -- 分为2个阶段: -- 1: 你有没有权限连接上来 -- 2: 你有没有权限执行操作(如select,update等) -- 对于1: 服务器如何判断用户有没有权限连接上来? -- 依据3个参数: -- 你从哪来? host -- 你是谁? user -- 你的密码? password -- 用户的这3个信息,存储在mysql.user表中 -- 修改host域,使IP可以连接 mysql> update user set host = 'xxx.xxx.xxx.xxx' where user = 'root'; mysql> flush privileges; -- 冲刷权限 必须 -- 如何修改用户密码 mysql> update user set password 'xxxx' where user = 'xxx'; mysql> flush privileges; -- 新增一个用户 -- 授权 grant [权限1,权限2,权限3,...] on *.* to userName@'host' identified by 'password'; 常用权限有 all,create,drop,insert,delete,update,select grant all on *.* to lisi@'xxx.xxx.xxx.%' identified by '111111'; -- 收回权限 revoke all on *.* from list@'xxx.xxx.xxx.%'; flush privileges; -- 针对某个库授权 grant all on xxdatabase.* to lisi@'xxx.xxx.xxx.%'; revoke all on xxdatabase.* from lisi@'xxx.xxx.xxx.%'; -- 针对表授权 grant insert,update,select on xxdatabase.xxxtable to lisi@'xxx.xxx.xxx.%'; revoke all on xxdatabase.xxxtable from lisi@'xxx.xxx.xxx.%'; -- mysql的权限控制,可以精确到列 找找找找手册