详解MySQL主从复制读写分离搭建
MySQL主从设置
MySQL主从复制,读写分离的设置非常简单:
修改配置my.cnf文件
master 和 slave设置的差不多:
[mysqld] log-bin=mysql-bin server-id=222
log-bin=mysql-bin
的意思是:启用二进制日志。
server-id=222
的意思是设置了服务器的唯一ID,默认是1,一般取IP最后一段,可以写成别的,只要不和其他mysql服务器重复就好。
这里,有的MySQL默认的my.cnf
文件引用了/etc/mysql/conf.d
路径下的所有cnf文件,因此,也可以在/etc/mysql/conf.d
目录下添加一个cnf文件,添加上以上内容
分别重启master和slave机器的mysql
/etc/init.d/mysql restart
master上建立账户并授权slave,slave上也做好相关配置
用root用户分别登录master和slave机器:
mysql -uroot -p //输入之后会让你输入root密码,输入root密码就算登陆了
master机器上
建立账户并授权slave机器,注意用户名和密码,可以随意设置,但是一定要记下来,因为后面slave还需要用到
GRANT REPLICATION SLAVE ON *.* to 'ryugou'@'%' identified by 'ryugou';
一般不用root帐号,@'%'表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
slave机器上
查看master状态
show master status;
在mysql终端输入
change master to master_host='xxx.xxx.xxx.xxx',master_user='ryugou',master_password='ryugou',master_log_file='mysql-bin.000004',master_log_pos=120;
master_log_file就是master机器上的对应的内容,master_log_pos也是,注意查看master状态上的内容。
master_user和master_password就是master机器上授权时设置用户名和密码。
启动从服务器
start slave;
检查从服务器复制功能状态
show slave status\G;
会出现一个列表
主要看Slave_IO_Running和Slave_SQL_Running 这俩状态必须都为Yes。
master创建数据库,从服务器设置用户访问权限
在master上创建数据库 test,会发现在slave上也创建了 test,现在想要读写分离,slave上的机器某用户gou可以访问它,但是只能读
grant select on test.* to gou;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解MySQL主从复制实战 - 基于日志点的复制
基于日志点的复制 1.在主库与从库上建立专用的复制账号 MariaDB [employees]> create user 'repl'@'172.%' identified by '123456'; 注意在生产上的密码必须依照相关规范以达到一定的密码强度, 并且规定在从库上的特定网段上才能访问主库 2.在主库与从库上授予复制权限 MariaDB [employees]> grant replication slave on *.* to 'repl'@'172.%'; 3.配置主库 注意启用二
-
详解MySQL主从复制实战 - 基于GTID的复制
基于GTID的复制 简介 基于GTID的复制是MySQL 5.6后新增的复制方式. GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交的事务在集群中有一个唯一的ID. 在原来基于日志的复制中, 从库需要告知主库要从哪个偏移量进行增量同步, 如果指定错误会造成数据的遗漏, 从而造成数据的不一致. 而基于GTID的复制中, 从库会告知主库已经执行的事务的GTID的值, 然后主库会将所有未执行的事务的GTID的列表返回给从库. 并且可
-
MySQL5.7不停业务将传统复制变更为GTID复制的实例
由于GTID的优势,我们需要将传统基于file-pos的复制更改为基于GTID的复制,如何在线变更成为我们关心的一个点,如下为具体的方法: 目前我们有一个传统复制下的M-S结构: port 3301 master port 3302 slave master上(3301): [zejin] 3301>select * from t_users; +----+------+ | id | name | +----+------+ | 1 | hao | | 2 | zhou | +----+---
-
Mysql 5.7从节点配置多线程主从复制的方法详解
前言 Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有一个线程在工作.相当于还是以前的单线程. 从 Mysql 5.7 开始支持同一数据库下并行主从复制.不过默认情况下,还是单数据库单个线程,如果需要使用多线程,需要在从节点进行配置. Mysql 5.7 对主从复制增加了一种类型,共有两种类型,如下: DATABASE 基于库的并行复制 , 每个数据库
-
利用pt-heartbeat监控MySQL的复制延迟详解
pt-heartbeat 数据库做主从复制时,复制状态.数据延迟是否正常是非常关键的指标,那么如何对其进行监控呢? pt-heartbeat 是 PERCONA 开发的一个工具集中的一个,专门用来监控MySQL和PostgreSQL的复制延迟. 比较成熟,例如Uber等大型公司都在使用. 下面来话不多说,来一起看看详细的介绍: 监控原理 在 master 中建一个 heartbeat 表,其中有一个 时间戳 字段,pt-heartbeat 会周期性的修改时间戳的值. slave 会复制 hear
-
Mysql中复制详细解析
1.mysql复制概念 指将主数据库的DDL和DML操作通过二进制日志传到复制服务器上,然后在复制服务器上将这些日志文件重新执行,从而使复制服务器和主服务器的数据保持同步.复制过程中一个服务器充当主服务器(master),而一个或多个其它服务器充当从服务器(slaves).主服务器将更新重新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器.从服务器在日志中读取的最后一次成功更新的位置.从服务器接受从那时起发
-
详解MySQL主从复制读写分离搭建
MySQL主从设置 MySQL主从复制,读写分离的设置非常简单: 修改配置my.cnf文件 master 和 slave设置的差不多: [mysqld] log-bin=mysql-bin server-id=222 log-bin=mysql-bin的意思是:启用二进制日志. server-id=222的意思是设置了服务器的唯一ID,默认是1,一般取IP最后一段,可以写成别的,只要不和其他mysql服务器重复就好. 这里,有的MySQL默认的my.cnf文件引用了/etc/mysql/conf
-
详解MySQL主从复制及读写分离
前言 在企业实际应用中,成熟的业务通常数据量都比较大,而单台MySQL服务器在安全性.高可用性和高并发方面都无法满足实际的需求,我们可以在多台MySQL服务器(Master-Slave)部署 主从复制来实现同步数据,再通过 读写分离来提升数据库的并发负载能力.有点类似于rsync,但是不同的是rsync是对磁盘文件做备份,而mysql主从复制是对数据库中的数据.语句做备份. 一.相关概述 主从复制:主数据库(Master)发送更新事件到从数据库(Slave),从数据库读取更新记录,并执行更新记录
-
SpringBoot详解如何实现读写分离
目录 前言 1.项目引入依赖 2.yml配置 3.启动 4.测试 5.中间所遇到的问题 前言 根据公司业务需求,项目需要读写分离,所以记录下读写分离的过程. 分为两个部分: 1.项目的读写分离. 2.mysql数据库的主从复制. 本篇使用的依赖包为sharding-jdbc-spring-boot-starter,也有考虑直接用dynamic-datasource-spring-boot-starter,但是需要在程序中显式的声明所指定的数据源,并且在从库>=2 的时候需要自己写算法进行读库的选
-
mysql主从复制读写分离的配置方法详解
一.说明 前面我们说了mysql的安装配置,mysql语句使用以及备份恢复mysql数据;本次要介绍的是mysql的主从复制,读写分离;及高可用MHA; 环境如下: master:CentOS7_x64 mysql5.721 172.16.3.175 db1 slave1:CentOS7_x64 mysql5.7.21 172.16.3.235 db2 slave2:CentOS7_x64 mysql5.7.21 172.16.3.235 db3 proxysql/MHA:CentOS7_x64
-
详解MySQL高可用MMM搭建方案及架构原理
先来看看架构,如下图: 部署 1.修改hosts 在所有的服务器中执行相同的操作. vim /etc/hosts 192.168.137.10 master 192.168.137.20 backup 192.168.137.30 slave 192.168.137.40 monitor 2.添加mysql用户 只需要在所有的数据库端执行即可,监控端不需要. GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'192.168.137.%' IDEN
-
详解如何利用amoeba(变形虫)实现mysql数据库读写分离
关于mysql的读写分离架构有很多,百度的话几乎都是用mysql_proxy实现的.由于proxy是基于lua脚本语言实现的,所以网上不少网友表示proxy效率不高,也不稳定,不建议在生产环境使用: amoeba是阿里开发的一款数据库读写分离的项目(读写分离只是它的一个小功能),由于是基于java编写的,所以运行环境需要安装jdk: 前期准备工作: 1.两个数据库,一主一从,主从同步: master: 172.22.10.237:3306 :主库负责写入操作: slave: 10.4.66.58
-
详解mongoDB主从复制搭建详细过程
详解mongoDB主从复制搭建详细过程 实验目的搭建mongoDB主从复制 主 192.168.0.4 从 192.168.0.7 mongodb的安装 1: 下载mongodb www.mongodb.org 下载最新的stable版 查看自己服务器 适合哪个种方式下载(wget 不可以的 可以用下面方式下载) wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.5.tgz curl -O -L https
-
一文详解MySQL Binlog日志与主从复制
目录 1. Binlog日志的介绍 2. 主从复制 2.1 主从复制的流程 2.2 GTID 2.3 复制模型 2.4 MGR模式 2.5 并行回放 1. Binlog日志的介绍 Binlog是Binary log的缩写,即二进制日志.Binlog主要有三个作用:持久化时将随机IO转化为顺序IO,主从复制以及数据恢复.本文重点主从复制相关的问题. Binlog日志由一个索引文件与很多日志文件组成,每个日志文件由魔数以及事件组成,每个日志文件都会以一个Rotate类型的事件结束. 对于每个事件,都
随机推荐
- python编程之requests在网络请求中添加cookies参数方法详解
- 基于在生产环境中使用php性能测试工具xhprof的详解
- 六款值得推荐的android(安卓)开源框架简介
- Oracle VM VirtualBox 在linux系统下安装增强插件实现访问主机的共享文档方法
- Jquery操作js数组及对象示例代码
- 如何在Windows Vista中预览PDF文件的方法
- 一行代码实现IOS 3DES加密解密
- JavaScript获取图片真实大小代码实例
- 一些常用的JS功能函数(2009-06-04更新)
- asp两组字符串数据比较合并相同数据
- Tornado中database模块被取消的替代方法
- 详解Linux系统中设置SFTP服务用户目录权限的方法
- sql存储过程几个简单例子
- MySql安装与使用图文教程【推荐】
- 探讨:如何查看和获取SQL Server实例名
- jquery实现的table排序功能示例
- js单词形式的运算符
- 通过Nginx服务器获取大文件MD5值的配置方法
- Symfony2创建基于域名的路由相关示例
- 基于java URL和URLConnection(详解)