mysql主从配置

mysql 集群 数据同步

旧街凉风 提交于 2020-03-07 14:34:32
mysql集群配置在网站负载均衡中是必不可少的; 首先说下我个人准备的负载均衡方式;   1、通过nginx方向代理来将服务器压力分散到各个服务器上;   2、每个服务器中代码逻辑一样;   3、通过使用redis缓存来保存内存中数据,使用redis同步功能来同步不同服务器内存中的数据;   4、在通过mysql的集群配置来实现数据库数据同步; 这里我整理了几种数据同步方式; 一:主从服务器同步;   顾名思义:主服务器负责数据的增删改查,从服务器负责同步数据;   主服务器建立二进制文件;每产生语句变化或磁盘变化写入日至;   从服务器读主服务二进制日至;将读到的日至转成从服务的relaylog,从服务读取relaylog同步主主服务器;   主服务器建立授权复制账号;   从服务器利用账号来监听主服务器;   步骤:   1、首先需要至少两台服务器,我这边118.xxx.xxx.1(主),118.xxx.xxx.2(从)两台服务器;两台搭建mysql方式不同,一台安装mysql,和mysql-server;一台通过直接安装mariadb方式;没什么影响;   2、主服务器修改/etc/my.cnf;     #在[mysqld]下添加,建立二进制日至 #server-id一般用服务器后一位 server-id=1 log-binary=mysql-bin #监听变化方式

Windows上模拟MySQL主从设置,读写分离

折月煮酒 提交于 2020-03-07 04:08:34
对于互联网架构来说,MySQL读写分离是很重要的。所以今天我决定在我自己的电脑上模拟下。 我一开始本以为可以用一个MySQL服务,建立两个数据库来模拟。但是网上的教程都是修改MySQL的配置文件,所以我只好另外又安装了个MySQL。为了避免不必要的麻烦,我们尽量保证MySQL版本一致。 我第一个MySQL是msi安装包安装的,在网上我下载的第二个MySQL是压缩包形式的。所以,我们从配置这种解压好的MySQL开始,如果自己会配置的话请忽略。 为了避免命令冲突,第二个MySQL我并不打算配置环境变量。以MySQL5.7版本为例,新建my.ini配置文件和data文件夹用来保存数据(有的版本带有此文件或文件夹,那就请可以直接编辑这个文件了)。 [mysqld] port = 3307 basedir=F:/mysql5.7 datadir=F:/mysql5.7/data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8 然后把上面的内容复制到my.ini文件里面,注意port,端口号不要冲突

使用mycat做Mysql读写分离

人盡茶涼 提交于 2020-03-06 11:42:07
本文转载自: https://www.93bok.com 实验环境: Centos6.5 minimal 64位系统 服务器IP:192.168.10.22(mycat) 192.168.10.27(master) 192.168.10.29(slave) 192.168.10.21(测试客户端) 说明: 1. 安装包已经提前下载好,此文档中不再演示下载步骤 2. 根据笔者习惯,所有的源码包都在/a01/apps/apps_src/ 3. 所有的服务安装路径都在/a01/apps/xxxxxxx 4. 服务器只安装了MySQL,如果不会安装,请参考之前文章 包版本: MySQL: mysql-5.7.19.tar.gz或者mysql-boost-5.7.19.tar.gz Mycat: Mycat-server-1.6.5-release-20171117203123-linux.tar JDK: jdk-8u151-linux-x64.tar.gz JDK去oracle官网下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Mycat官网下载: http://www.mycat.io/ MySQL读写分离的概述 Mysql作为目前世界上使用最广泛的免费数据库

linux--mysql(主从复制position)

試著忘記壹切 提交于 2020-03-06 09:03:47
异步复制(主从复制)master节点不会关心slave节点的状态,只需要写自己的数据即可 能不能完成复制看slave节点的io线程和sql线程是否开启 (1)主库开启binlog日志(设置log - bin参数) (2)主从server - id不同 (3)从库服务器能连同主库 mysql的主从配置又叫replication,AB复制,基于binlog二进制日志,主数据库必须开启binlog二进制日志才能进行复制 (1) master将改变记录到二进制日志 ( binary log ) 中(这些记录叫做二进制日志事件,binary log events); (2)从库生成两个线程,一个i / o线程,一个SQL线程,i / o线程去请求主库的binlog,sql线程进行日志回放来复制 (3) slave将master的binary log events拷贝到它的中继日志 ( relay log ) ; (4)slave重做中继日志中的事件,将更改应用到自己的数据上。 mysql的主从复制(异步复制)(基于position)把一个事件拆开来复制,并不是以一个完整的事件为单位来进行复制 一开始两个mysql必须一模一样,否则会报错 master自己做自己的,写在自己的日志里 slave能否同步成功取决于IO线程,和SQL线程回放日志 IO通过联系master拿到master的二进制日志

MySQL集群MGR架构for单主模式

那年仲夏 提交于 2020-03-05 18:19:51
本文转载自: https://www.93bok.com MGR简介 MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案。MySQL组复制提供了高可用、高扩展、高可靠的MySQL集群服务。 1)高一致性 基于原生复制及paxos协议的组复制技术,并以插件的方式提供,提供一致数据安全保证; 2)高容错性 只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争用冲突时,不会出现错误,按照先到者优先原则进行处理,并且内置了自动化脑裂防护机制; 3)高扩展性 节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息; 4)高灵活性 有单主模式和多主模式,单主模式下,会自动选主,所有更新操作都在主上进行;多主模式下,所有server都可以同时处理更新操作。 MGR是MySQL数据库未来发展的一个重要方向。 MGR基础结构要求 1、引擎必须为innodb,因为需事务支持在commit时对各节点进行冲突检查 2、每个表必须有主键,在进行事务冲突检测时需要利用主键值对比 3、必须开启binlog且为row格式 4、必须打开GTID特性,且主从状态信息存于表中 (--master-info

MySQL高可用群集----MHA

纵然是瞬间 提交于 2020-03-03 02:48:54
文章目录 前言: 一、MHA概述 1.1 MHA简介 1.2 MHA特点 1.3 MHA作用 二、MHA实验 2.1 实验环境 2.2 拓扑图 2.3 实验目的 2.4 案例配置思路 2.5 实验配置 2.5.1 定义节点服务器名称 2.5.2 安装编译依赖环境 2.5.3 手工编译安装MySQL5.6 2.5.4 修改MySQL配置文件 2.2.5 新增数据库授权 2.5.6 配置主从同步 2.5.7 安装MHA 2.5.8 配置无密码认证 2.5.9 配置MHA 2.6 验证配置 2.6.1 验证密钥对 2.6.2 测试mysql主从复制 2.6.4 启动MHA 2.6.5 模拟故障 总结: 前言: MHA目前在MySQL高可用方面是一个相对成熟的解决方案 但是在搭建的过程中容易报错,且MHA的构建综合了主从复制,所以MHA安装时需要严格执行每一个部署 一、MHA概述 1.1 MHA简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,MHA是由日本人开发,是一套优秀的MySQL故障切换和主从复制的高可用软件 在MySQL故障切换的过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能够最大程度上保证数据库的一致性,以达到真正意义上的高可用 MHA由perl语言编写

新特性解读 | InnoDB ReplicaSet:MySQL 副本集初体验

两盒软妹~` 提交于 2020-03-02 18:56:48
作者:任仲禹 一、InnoDB ReplicaSet 介绍 MySQL 副本集(官方名称:MySQL InnoDB ReplicaSet)在 MySQL 8.0.19 版本(2020-01-13 Released)之后开始支持,本质还是是基于 GTID 的异步复制 角色分为 Primary 和 Secondary Primary 即传统意义上的 Master,一个副本集只允许一个 Secondary 即 Slave,允许一个或多个 通过 MySQL Shell 自带的 AdminAPI 创建、配置、删除等管理副本集 通过 MySQL Router 使用副本集,引导与连接方式与 InnoDB Cluster 和 MGR 有点类似,不同之处在于新增了 cluster_type = rs 集群类型。 二、通过 MySQL Shell 部署 Sandbox 实例 MySQL Shell 除了集成 AdminAPI 外还提供了 MySQL Sandbox 功能,可轻松部署用以测试的 MySQL 数据库实例 通过 Sandbox 一键部署三个 MySQL 实例 # mysqlsh MySQL JS > dba.deploySandboxInstance(3306) MySQL JS > dba.deploySandboxInstance(3307) MySQL JS > dba

day62:mysql主从配置

人走茶凉 提交于 2020-03-02 10:50:19
1、主从介绍: mysql主从又叫Replication,AB两台机器复制,也就是说是AB两台机器做了主从后,在A机器上写数据,另一台B机器也会跟中写数据,两者数据实时同步: mysql主从是基于 binlog ,主上必须开启 binlog 才能进行主从:binlog是一个 二进制的日记文件 : mysql主从的过程步骤 : 1:主将更改操作记录(增删改)到 binlog 里: 2:从将主的 binlog事件 ( SQL语句 )同步到从本机并记录 relaylog 中: 3:从根据 relaylog 里面的语句按数据严格执行: 注释: 主从过程涉及到三个线程, 主(logdump线程) 从(I/O线程、SQL线程) 主上 有一个 线程(logdump) 用来和从的 I/O线程 传递binlog: 从上有两个线程: I/O线程 用来同步主的binlog至本机并生成 relaylog : SQL线程 用来把r elaylog里的sql语句 按数据执行: 附记: master主会把操作记录到binlog中,通过线程dumplog和从线程I/O线程传递binlog,从通过线程I/O收到binlog后至本机生成relaylog,并通过线程SQL来按顺序执行relaylog里的sql语句: 应用场景 : 1、 用于备份重要数据:(仅仅只作为备份):主机器宕机,从机器还能随时对web提供服务:

MYSQL主从配置

风流意气都作罢 提交于 2020-03-02 09:45:34
MYSQL介绍,配置MYSQL主 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。 主从过程大致有3个步骤 1)主将更改操作记录到binlog里 2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog(中继日志)里 3)从根据relaylog里面的sql语句按顺序执行 主上有一个log dump线程,用来和从的I/O线程传递binlog 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地 主从配置 - 主上操作 安装mysql 修改my.cnf,增加server-id=130和log_bin=aminglinux1 修改完配置文件后,启动或者重启mysqld服务 把mysql库备份并恢复成aming库,作为测试数据 mysqldump -uroot -p123 mysql > /tmp/mysql.sql mysql -uroot -e “create database aming” mysql -uroot -plinbs123 aming < /tmp/mysql.sql 创建用作同步数据的用户

mysql主从复制(一主一从)

百般思念 提交于 2020-03-01 21:11:03
概念         MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。 安装mysql(一主一从)   192.168.138.187  主机   192.168.138.188  丛机   步骤一:检查虚拟机中是否有mysql环境,并将其卸载,命令如下 rpm -qa | grep -i mysql          如果有使用【rpm -e --nodeps MySQL-client-5.5.44-1.linux2.6.x86_64】命令将其删除;      使用【find / -name mysql】命令查看是否有相关的mysql文件夹            有的话,使用【rm -rf 文件名】删除相关文件或文件夹          步骤二:在【/usr/local】目录下使用命令【mkdir mysql