实战MYSQL 8.0.12 主主复制配置过程

实战MYSQL 8.0.12 主主复制配置过程

搭建环境:

Server name IP
mysql1 192.168.200.1
mysql2 192.168.200.2

服务器版本:CentOS Linux release 7.5.1804 (Core)
MYSQL版本:8.0.12 # 采用源码安装方式, 此过程略,或者参考 http://blog.51cto.com/snowlai/2140451

由于MYSQL采用的是源码安装方式,没有生成 /etc/my.cnf 文件,需要手动创建,创建内容如下:

vim /etc/my.cnf # mysql1里的内容,mysql2的内容区别是server-id = 2 就可以,其它一样;

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
server-id = 1
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
symbolic-links=0
log-error=/usr/local/mysql/data/mysql1.err
pid-file=/usr/local/mysql/data/mysql1.pid

进入mysql1的数据库

mysql -uroot -p #输入数据库的密码
mysql> flush table with read lock;

锁住数据库的写操作后,不要退出这个终端,复制一个终端,将/usr/local/mysql/data 压缩打包,然后再scp到mysql2上。

tar zcvf data.tar.gz data
scp data.tar.gz [email protected]:/usr/local/mysql/

然后再mysql2上解压data.tar.gz, 并删除 auto.cnf文件

tar zxvf data.tar.gz
rm -rf auto.cnf

都重启mysqld服务

service mysqld restart


mysql1: MASTER ; mysql2:SLAVE

在mysql1上创建复制用户(repl_user),并授权

grant replication slave on . to ‘repl_user‘@‘mysql2‘ identified by ‘REPL_PASSWORD‘;
show master status;

并记录master的输出:File和Position的值

登录到mysql2上,设置mysql1为自己的主服务器

change master to master_host=‘mysql1‘,master_user=‘repl_user‘,master_password=‘REPL_PASSWORD‘,master_log_file=‘mysql1上File的值‘,master_log_pos=mysql1上的position值;
start slave;
show slave status \G;


mysql2: MASTER ; mysql1:SLAVE
在mysql2上创建复制用户(repl_user),并授权
grant replication slave on . to ‘repl_user‘@‘mysql1‘ identified by ‘REPL_PASSWORD‘;
show master status;

并记录master的输出:File和Position的值

登录到mysql1上,设置mysql2为自己的主服务器

change master to master_host=‘mysql2‘,master_user=‘repl_user‘,master_password=‘REPL_PASSWORD‘,master_log_file=‘mysql2上File的值‘,master_log_pos=mysql2上的position值;
start slave;
show slave status \G;



注意事项:

  1. 两个数据库的数据在初始状态必须保持一致, 这样才能保证 show master status;的时候输出的结果才一致;
  2. show slave status \G; 的时候。 Slave_IO_Running 和 Slave_SQL_Running 的结果为YES;
  3. 数据库的配置文件:/etc/my.cnf 中的server-id的值必须不一样;
  4. 两台服务器中的数据库版本必须一样;

原文地址:http://blog.51cto.com/snowlai/2298971

时间: 10-11

实战MYSQL 8.0.12 主主复制配置过程的相关文章

MySQL学习笔记12半同步复制

1.1.1. 相关概念 默认情况下,MySQL使用异步复制,即master上的事务执行与slave上的复制操作不需要同步,master不需要等待slave上的复制线程将Binary Log接收完毕即可执行其它事务. 半同步复制时,master上的事务执行与slave上的复制操作需要在某个步骤上进行同步,master需要等待slave上的复制线程接收完毕Binary Log. 异步复制的工作效率比较高,但是在特定条件下,有可能造成master和slave的数据不一致.半同步复制可以降低数据不一致的

mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

主要思路 测试环境 实现mysql主备复制 配置A主mysql 配置B备mysql 验证同步配置结果 验证是否同步 关闭B备mysql的同步,验证读写分离 实现读写分离 安装mycat 配置mycat 启动mycat 测试读写分离 验证是否同步 关闭B备mysql的同步,验证读写分离 数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,

Mysql的主主备份与主从备份--同步

Mysql的主主备份与主从备份--同步 一:实验目标 mysql主从原理 实战:mysql主从配置 实战:mysql主主配置 二:实验环境 导入测试数据库book: Mysql主xuegod63   IP:192.168.1.63 Mysql从xuegod64   IP:192.168.1.64 三:实验代码 实战:mysql主从配置  服务概述:主从复制 复制解决的基本问题是让一台服务器的数据和另外的服务器保持同步. 一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作主服务器.主服务

Mysql 5.7.12解压版的安装及配置系统编码

这篇博文是由于上篇EF+MySql博文引发的,上篇博文中在Seed方法中插入中文数据到Mysql数据库中乱码,后来网上找了N种方法也没解决.重装了MySql并在安装过程中配置了系统编码,此篇记录一下. 一.下载Mysql对应版本的Zip(我这里是mysql-5.7.12-winx64.zip)文件 a.解压后把文件复制到需要放的安装目录文件下.(ps:我的路径是D:\Program Files\MySql 5.7.12\bin)  b.复制bin目录下的my-default.ini文件改名为my

MySQL集群(二)之主主复制

前面介绍了主从复制,这一篇我将介绍的是主主复制,其实听名字就可以知道,主主复制其实就是两台服务器互为主节点与从节点.接下来我将详细的给大家介绍,怎么去配置主主复制! 一.主从复制中的问题 1.1.从节点占用了主节点的自增id 环境: 主节点:zyhserver1=1.0.0.3 从节点:udzyh1=1.0.0.5 第一步:我们在主节点中创建一个数据库db_love_1,在创建一个表tb_love(里面有id自增和name属性). create database db_love_1; use d

MySQL 主从复制、主主复制、半同步复制

MySQL 复制 =============================================================================== 概述: =============================================================================== MySQL Replication:   1.主从复制的目的和架构 ★Master/Slave(主/从) Master: write/read Slave

mysql之 mysql 5.6不停机主主搭建(活跃双主基于日志点复制)

环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火墙已关 补充:主从复制原理: http://blog.csdn.net/zhang123456456/article/details/72972701mysql 5.6安装 :http://blog.csdn.net/zhang123456456/article/details/53608554xt

centos lvs+keepalived+mysql实现mysql数据库热备主主复制-亲测ok

实验环境: linux:centos6.6 虚拟ip(vip):192.168.135.199 mysql master:192.168.20.193 mysql slave:192.168.20.195 (这里只是为了后文方便区分,一个叫master,一个叫slave,其实在主主复制中,都是master也都是slave,没有主从之分) mysql的版本: [[email protected] ~]# mysql -V mysql  Ver 14.14 Distrib 5.1.73, for r

搭建MySQL的主从、半同步、主主复制架构

复制其最终目的是让一台服务器的数据和另外的服务器的数据保持同步,已达到数据冗余或者服务的负载均衡.一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作为主服务器.主从服务器可以位于不同的网络拓扑中,由于mysql的强大复制功能,其复制目标可以是所有的数据库,也可以是某些数据库,甚至是某个数据库中的某些表进行复制. MySQL支持的两种复制方案:基于语句复制,基于行复制基于语句复制基于行复制,这两种复制方式都是通过记录主服务器的二进制日志中任何有可能导致数据库内数据发生改变的SQL语句到中

MySQL 主主复制 + LVS + Keepalived 实现 MySQL 高可用性

MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.但是MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负载均衡,如果其中master宕掉的话需要手动切换到另外一个master,而不能自动进行切换. 这篇文章下面要介绍如何通过LVS+Keepalived的方式来是实现MySQL的高可用性,同时解决以上问题. Keepalived和LVS介绍 Keepalived是一个基于VRRP(虚拟路由冗余协议)可用