mysql主从配置

MySQL主从复制

假装没事ソ 提交于 2019-11-29 07:26:06
一、复制的基本原理 1、slave会从master读取binlog来进行数据同步 2、三步骤+原理图   MySQL复制过程分成三步:   1 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;   2 slave将master的binary log events拷贝到它的中继日志(relay log);   3 slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的 (1)master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events (2)slave将master的binary log events拷贝到它的中继日志(relay log) (3)slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的 二、复制的基本原则 1、每个slave只有一个master 2、每个slave只能有一个唯一的服务器ID 3、每个master可以有多个salve 三、复制的最大问题 延时 四、一主一从常见配置 1、mysql版本一致且后台以服务运行 2、主从都配置在[mysqld]结点下,都是小写 3、主机修改my.ini配置文件 (1) [必须] 主服务器唯一ID    

mysql 在gtid环境下缺少一部分binlog部署从库

谁说胖子不能爱 提交于 2019-11-29 07:26:04
我的环境: 有两台linux服务器 一台是192.168.1.1 mysql 端口3301 一台是192.168.1.2 mysql 端口3303 要讨论如何恢复从库,我们得先来了解如下一些概念: GTID_EXECUTED:它是一组包含已经记录在二进制日志文件中的事务集合 GTID_PURGED:它是一组包含已经从二进制日志删除掉的事务集合。 在继续讨论时,我们先来看下如何新建一个基于GTID的slave。 通过了解上面的两个参数,我们现在只需要: 1.从主库上做一个备份时记录备份时gtid_executed的值。 2.在新的slave上恢复此备份时设置从库的gtid_purged的值为备份时master上gtid_executed的值。 通过mysqldump可以完成我们需要的功能。 目前主库上的状态(3301): [smile] 3301>show global variables like 'gtid_executed'; +---------------+-------------------------------------------+ | Variable_name | Value | +---------------+-------------------------------------------+ | gtid_executed | a97983fc

mysql的主从级联复制的配置

£可爱£侵袭症+ 提交于 2019-11-29 07:25:51
作者:邓聪聪   在高级的应用环境中都需要用到高可用,这里配置的是mysql的主从级联复制   试验环境:   主节点 192.168.0.101/24   辅助节点+辅助节点 192.168.0.102/24 ,192.168.0.103/24   配置(CentOS Linux release 7.6.1810 (Core) ,mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1) master配置: [mysqld] server_id=1 log-bin=/data/mysql_bin binlog_format=row skip-name-resolve datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or

MySQL复制以及调优

不打扰是莪最后的温柔 提交于 2019-11-29 07:25:43
一. 简介 MySQL自带复制方案,带来好处有: 数据备份。 负载均衡。 分布式数据。 概念介绍: 主机(master):被复制的数据库。 从机(slave):复制主机数据的数据库。 复制步骤: (1). master记录更改的明细,存入到二进制日志(binary log)。 (2). master发送同步消息给slave。 (3). slave收到消息后,将master的二进制日志复制到本地的中继日志(relay log)。 (4). slave重现中继日志中的消息,从而改变数据库的数据。 下面放一张经典的图片来说明这一过程: 二. 实现复制 实现复制有以下步骤: 1.设置MySQL主库的二进制日志以及server-id MySQL配置文件一般存放在/etc/my.cnf # 在[mysqld]下面添加配置选项 [mysqld] server-id=1 log-bin=mysql-bin.log server-id是数据库在整个数据库集群中的唯一标示,必须保持唯一。 重启MySQL。 注:如果MySQL配置文件中已经配置过此文件,则可以跳过此步。 2.新建复制账号 在主库里面新建用于从库复制主库数据的账号,并授予复制权限。 mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO user_name@'host'

MySQL 主从复制 (CentOS 7)

偶尔善良 提交于 2019-11-29 07:25:28
1、主从复制原理 (1) 当master 服务器上的数据发生改变时,则将其改变写入二进制日志文件中; (2) slave服务器会在一定时间间隔内对 master 服务器上的二进制日志进行探测,探测其是否发生过改变; (3) 如果探测到 master 服务器的二进制日志发生了改变,则开始一个I/O Thread请求master二进制事件; (4) 同时master 服务器为每个slave的 I/O Thread 启动dump Thread,用于向其发送二进制事件; (5) slave 服务器将接收到的二进制事件保存至自己本地的中继日志文件中; (6) slave 服务器 启动SQL Thread 从中继日志中读取二进制日志,在本地重放,使得其数据与master 服务器保持一致; (7) 最后I/O Thread 与 SQL Thread 将进入睡眠状态,等待下一次被唤醒; 2、操作步骤 (1) 修改master 服务器上mysql的配置文件,使其支持二进制日志功能。 打开编辑: vim /etc/my.cnf 添加如下三行代码: log-bin=mysql-bin binlog_format=mixed server-id=128 参数解释: //将mysql二进制日志取名为mysql-bin log-bin=mysql-bin //二进制日志的格式,有三种:statement

mysql主从

和自甴很熟 提交于 2019-11-29 07:25:13
1. 主从简介 为了解决以下典型两个问题,我们导入主从学习 用一台数据库存放数据,若此数据库服务器宕机了导致数据丢失怎么办? 业务量大了,数据多了,访问的人多了,一台数据库无法保证服务质量了怎么办? 1.1 主从作用 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 1.2 主从形式 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的 多主一从---5.7开始支持 联级复制 2. 主从复制原理 主从复制步骤: 主库将所有的写操作记录到binlog日志中并生成一个log dump线程,将binlog日志传给从库的I/O线程 从库生成两个线程,一个I/O线程,一个SQL线程 I/O线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中 SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,达到最终数据一致的目的 3. 主从复制配置 主从复制配置步骤: 1)确保从数据库与主数据库里的数据一样 2)在主数据库里创建一个同步账号授权给从数据库使用 3)配置主数据库(修改配置文件) 4)配置从数据库(修改配置文件) 需求: 搭建三台MySQL服务器,一台作为主服务器,其它两台作为从服务器(其中一项主从为主库中存有数据,另一项主库中没有数据),主服务器进行写操作

Docker Mysql主从同步配置搭建

泄露秘密 提交于 2019-11-29 07:24:57
Docker Mysql主从同步配置搭建 建立目录 在虚拟机中建立目录,例如路径/home/mysql/master/data,目录结构如下: Linux中 新建文件夹命令:mkdir 文件夹名 返回上一层: cd ../ 新建/修改文件命令:vi 文件名 例如 配置主从配置文件 Master下: my.cnf   在conf目录下输入:vi my.cnf 打开my.cnf后输入下列代码 完成后,按esc键后输入[ :wq ]保存返回 注意:也可以借助FlashFXP传输配置文件到虚拟机目录,比较方便如图下: 具体配置文件内容如下: [mysqld] server_id = 1 log-bin=mysql-bin read-only=0 binlog-do-db=caesar replicate-ignore-db=mysql replicate-ignore-db=sys replicate-ignore-db=information_schema replicate-ignore-db=performance_schema !includedir/etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ 同理:Slaver下创建: my.cnf [mysqld] server_id = 2 log-bin=mysql-bin

基于【 MySql 】一 || 主从复制

久未见 提交于 2019-11-29 07:24:40
一、centos7安装mysql 1、 先检查系统是否装有mysql rpm -qa | grep mysql 2、 下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 如果报错: -bash: wget: command not found 需要安装一下插件: yum -y install wget 3、 安装完成后下载mysql的repo源,然后安装mysql-community-release-el7-5.noarch.rpm包 sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 4、 安装MySQL sudo yum install mysql-server 5、 重置MySQL密码 mysql -u root 如果报以下错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 原因是/var/lib/mysql的访问权限问题,需要执行以下命令即可。 chown root /var/lib/mysql/ 6、 重启MySQL服务 service

mysql8.0.主从复制搭建

心已入冬 提交于 2019-11-29 07:24:25
搭建主从数据库 一.准备两台以上对的数据库         数据库1(主服务器): 192.168.2.2         数据库2(从服务器): 192.168.2.4 1.1 配置主服务器 .在 /etc/my.cnf 的[mysqld]节点内,新加 [mysqld] #主从配置 server-id=1 #服务器 id log-bin=mysql-bin #二进制文件存放路径 binlog-do-db=palan-dev #待同步的数据库 binlog-ignore-db=mysql #不同步的数据 Esc退出,:wq 回车。 1.2 重启mysql service mysqld restart 1.3 配置或者关闭服务器的防火墙,因为要用从服务器连接 使用命令:systemctl stop firewalld.service 1.4 登录mysql ,授权账号,让从数据库可以进行复制。 1 mysql -u root -p密码 2 CREATE USER 'rootslave'@'从服务器ip地址' IDENTIFIED WITH mysql_native_password BY 'root123';# 创建用户 3 grant replication slave on *.* to 'rootslave'@'从服务器IP地址';#授权 1.5 重启mysql服务

MySQL(Mariadb)主从同步基础

有些话、适合烂在心里 提交于 2019-11-29 07:24:08
一、准备阶段 两台linux虚拟机centos7版本,都安装了mariadb 5.5.6 进行主从同步配置: 首先防火墙要开放3306端口, 主库服务器ip:192.168.211.100 从库服务器ip:192.168.211.101 二、配置主库 1.主库上给从库ip授权 mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.211.101' identified by 'test123456'; mysql>FLUSH PRIVILEGES; 2.修改主库配置文件 设置server-id,开启binlog vim /etc/my.cnf 添加: log-bin=/var/lib/mysql/binlog server-id=1 binlog-do-db = study1 server-id:主库端的ID号; log-bin:同步的日志路径及文件名 binlog-do-db:要同步的数据库名 设置不同步的数据库: binlog-ignore-db = mysql 不同步mysql库和test库 binlog-ignore-db = test 配置好后重启mysql(mariadb) service mariadb restart 3.查看主库状态 mysql> show master status;