手机版

主从复制读写分离 - MySQL中文参考手册

2019-09-11 阅读 :

MySQL主从复制读写分离授权方案及实践

当配置好MySQL主从复制后,由于数据复制是单向的,所有对数据库的更新操作都必须在主服务器上进行,只有在主库上更新,才能避免用户对主服务器上数据库内容的更新与对从服务器上数据库内容的更新一致,而不会发生冲突。

MySQL复制环境用户授权方案

生产授权方案1

方案1、2对比推荐使用方案1,生产环境中推荐使用忽略授权表方式授权

数据库用户名密码IP地址端口权限
主库webpasswd192.168.0.123306selectinsertdeleteupdate
从库webpasswd192.168.0.133306select

说明
从库的用户名和密码:主库的web用户同步到从库,然后通过revoke权限回收将insert,delete,update权限回收。

主库用户授权示例:

grant select,insert,update,delete on dbName.* to 'userName'@'localhost' identified by 'password';

提示:特殊的业务可能权限会比较多,如果业务安全性要求不高,也可以给与all privileges权限。

从库用户授权示例:

grant select,insert,update,delete on dbName.* to 'userName'@'localhost' identified by 'password';

revoke insert,update,delete on on dbName.* from 'userName'@'localhost';
当然也可以不回收权限,通过配置文件在[mysqld]区域设置read-only或者在mysql启动时指定read-only参数。修改完记得重启服务
另外:read-only参数可以让slave服务器只允许来自slave服务器线程或者具有super权限(即对用户授权时不能指定有super或all privileges权限)的用户更新
但可以确保slave服务器不接受来自普通用户的更新,slave服务器启动选项增加--read-only也是同样的功能。


生产授权方案2

数据库用户名密码IP地址端口权限
主库web_wpasswd192.168.0.123306selectinsertdeleteupdate
从库web_rpasswd192.168.0.133306select

说明
在主库授权web_w账号、从库授权web_r账号对应权限权限;
对于开发而言,使用多套用户名密码不专业。

通过忽略授权表的方式防止数据写入从库的方法

在生产环境中,一般会采取忽略授权表方式同步,然后对从服务器(slave)上的用户仅授权select读权限。不同步mysql库,这样的话我们就保证了主库和从库相同的用户可以授权不同的权限。在主从库分别进行如下授权:

数据库用户名密码IP地址端口权限
主库webpasswd192.168.0.123306selectinsertdeleteupdate
从库webpasswd192.168.0.133306select

忽略mysql库和information_schema库的主从同步参数

缺陷:从库切换主库时,连接用户权限问题。可以保留一个从库专门准备接替主。

[mysqld]binlog-do-db=dbName # 要同步的某个库replicate-ignore-db=mysqlbinlog-ignore-db=mysql  # 不同步的库binlog-ignore-db=information_schemabinlog-ignore-db=performance_schema

另外:忽略记录binlog日志的参数binlog-ignore-db一般用于系统的库和表。(修改完my.cnf后重启服务)

replication中忽略binlog数据量

master端参数:

--binlog-do-db 二进制日志记录的数据库(多个数据库用,分割)
--binlog-ignore-db 二进制日志忽略的数据库(多个数据库用,分割)

slave端参数:

--replication-do-db 设定需要复制的数据库(多个数据库用,分割)
--replication-ignore-db 设定忽略复制的数据库(多个数据库用,分割)
--replocation-do-table 设定需要复制的表(多个表用,分割)
--replication-ignore-table 设定忽略复制的表(多个表用,分割)
--replication-wild-do-table和--replocation-do-table功能一样,但是可以加通配符。
--replication-wild-ignore-table和--replication-ignore-table功能一样,但是可以加通配符。


服务器软件 网络工具 网站工具 服务器教程 服务器知识 服务器技术 服务器之家 vps教程 vps是什么

本文标题:主从复制读写分离 - MySQL中文参考手册 - 服务器教程_服务器技术_服务器知识_vps教程
本文地址:https://www.helloaliyun.com/tutorial/513.html

相关文章

  • CentOS 7 常用命令(系统关机、重启以及登出)

    关机:(系统的关机、重启以及登出 ) # 关闭系统(1)[root@localhost ~]# shutdown -h now # 关闭系统(2)[root@localhost ~]# init 0 # 关闭系统(3)[root@localhost ~]# telinit 0 # 按预定时间关闭系统[root@localhost...

    2019-12-07 服务器教程
  • linux重启命令 reboot与shutdown -r now的区别与联系

    在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告...

    2019-12-07 服务器教程
  • CentOS 7 如何使用命令重启或关机

    安装GNOME的朋友们首先切换到字符界面。切换到字符界面的方法如下: 先登陆进入系统,进入图形化界面,然后按Ctrl+Alt+F6(笔记本的是Ctrl+Alt+shift+Fn),进入字符界面。关机命令:shutdown或poweroffshutdown:shutdown -h now...

    2019-12-07 服务器教程
  • CentOS 7 正确关机重启的命令方法

    linux主要用于服务器领域,而在服务器上执行一项服务是永无止境的,除非遇到特殊情况,否则不会关机。和Windows不同,在linux系统下,很多进程是在后台执行的。在屏幕背后,可能有很多人同时在工作。如果直接按下电源的按钮,其他...

    2019-12-07 服务器教程
  • CentOS下的yum upgrade和yum update区别,没事别乱用!

    说明:生产环境对软件版本和内核版本要求非常精确,别没事有事随便的进行yum update操作!!!!!!!!!yum update: 升级所有包同时也升级软件和系统内核yum upgrade:只升级所有包,不升级软件和系统内核...

    2019-12-07 服务器教程
你可能感兴趣