之前做过一次在单台机器上的多实例的mysql,这次分开做,使用两台主机。

这里使用的主机地址分别为:

MASTER:192.168.214.135

SLAVE  : 192.168.214.128

这两个主机已经安装过mysql,但是两个数据库数据不一样

主从复制大致步奏

配置MySQL复制基本步骤:

一、master

1、启用二进制日志
log-bin = master-bin
log-bin-index = master-bin.index

2、选择一个惟一server-id
server-id = {0-2^32}

3、创建具有复制权限的用户
REPLICATION SLAVE

二、slave

1、启用中继日志
relay-log = relay-log
relay-log-index =

2、选择一个惟一的server-id
server-id = {0-2^32}

3、连接至主服务器,并开始复制数据;
mysql> CHANGER MASTER TO MASTER_HOST='',MASTER_PORT='',MASTER_LOG_FILE='',MASTER_LOG_FIEL_POS='',MASTER_USER='',MASTER_PASSWORD='';
mysql> START SLAVE;

mysql> START SLAVE IO_Thread;
mysql> START SLAVE SQL_Thread;

下面检查主服务器MASTER的数据库配置文件

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
datadir=/mydata/data
log-bin=master-bin
log-bin-index=master-bin.index

binlog_format=mixed
#relay-log = relay-mysql
#relay-log-index = relay-mysql.index
#auto-increment-increment = 2
#auto-increment-offset = 1
server-id = 1

  下面配置SLAVE的配置文件

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysqldata
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id = 2
relay-log = relay-log
relay-log-index = relay-log.index
主从数据库的其他配置项有所不同,这里先不管

 一: 上面主从库的配置文件都设置好后,登录到MASTER库上,创建一个具有复制权限的用户

grant replication slave on *.* to 'feng'@'192.168.%.%' identified by 'fsz123';

flush privileges;

slave添加master信息前先查看master库的bin-log日志记录位置节点,master库中执行:

mysql> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000029 | 107 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.01 sec)

 二:登录从库SLAVE 添加master信息

mysql> change master to  master_host='192.168.214.135',master_user='feng',master_password='fsz123',master_log_file='master-bin.000029',master_log_pos=323;
Query OK, 0 rows affected (0.15 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 三:启动从库复制:

mysql> SLAVE START;

  执行: show  slave  status\G 查看复制状态

mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.214.135
Master_User: feng
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000029
Read_Master_Log_Pos: 323
Relay_Log_File: relay-log.000002
Relay_Log_Pos: 254
Relay_Master_Log_File: master-bin.000029
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Replicate_Do_DB:
从库的IO线程和SQL线程已经开启
下面执行show databases; 查看数据库同步状况

  查看从库的数据信息

 Database           |
+--------------------+
| information_schema |
| demo |
| demo222 |
| demo333 |
| mysql |
| performance_schema |
| test
主库里新建的demo222,demo333已经到从库中

  //////////////////////////////////////////////////////////////////////////////////////////////////////

mysql的双主模式配置

  

在上面的基础上,再增加双主复制的实现,实现双主模式,在从库中也要开启二进制日志文件,同时主库中也增加slave中继日志功能

编辑从库my.cnf

log-bin=master-bin
log-bin-index=master-bin.index
binlog_format=mixed

relay-log = relay-mysql
relay-log-index = relay-mysql.index
auto-increment-increment = 2
auto-increment-offset = 2

 编辑主库my.cnf 添加slave日志

log-bin=master-bin
log-bin-index=master-bin.index
binlog_format=mixed

auto-increment-increment = 2   #步进值auto_imcrement。一般有n台主MySQL就填n
auto-increment-offset = 1  #步进值auto_imcrement。一般有n台主MySQL就填n

  #binlog-ignore=mysql   #忽略mysql库【或者其他不需同步复制的库】

   # replicate-do-db=aa   #要同步的数据库,默认所有库【或者其他指定复制的库】

relay-log = relay-mysql
relay-log-index = relay-mysql.index

  在主库中执行change master to 指令

change master to  master_host='192.168.214.128',master_user='feng',master_password='fsz123',master_log_file='master-bin.000001',master_log_pos=107;
mysql> flush privileges;

  启动主库中的复制功能

start   slave;

此时,mysql双主复制完成。

mysql主从复制及双主复制的更多相关文章

  1. MySQL 5.7 双主复制+keepalived,常规业务一般够用了

    业务需求: 为Zabbix搭建2个数据库,一个库给服务器监控用,一个库给网络监控用. 硬件: 两台服务器,硬盘是1.2 T SSD卡,内存128G 架构: 希望做双主复制+keepalived,架构大 ...

  2. Mysql主从复制,双主热备

    Mysql主从复制: 主从复制: 主机准备工作: 开启bin.Log 注意:server-id  是唯一的值 重启mysql:service mysql restart 查看是否开启成功: 查看当前状 ...

  3. mysql主主复制(双主复制)配置步骤

    以前我们介绍的都是主从复制,这里给各位介绍一个双主复制了,下面都希望两个主服务器数据自动复制的话可参考一下此文章.   MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任何一台 ...

  4. 分布式数据存储 - MySQL双主复制

    上篇文章<分布式数据存储 - MySQL主从复制>,我们说到MySQL主从复制很好的保障了从库,读的高可用性.so,问题来了: 1.针对主库,写的高可用性又是如何做到高可用性? 2.如果需 ...

  5. MySQL双主复制

    原文发表于cu:2017-06-12 本文简单介绍MySQL双主复制原理及1个简单是双主复制验证. 一.MySQL双主复制原理 1. 双主复制原理 master-master复制的两台服务器,既是ma ...

  6. linux系统mysql主主复制(双主复制)

    一.简介 在上一篇的主从复制中:http://www.cnblogs.com/lay2017/p/9043985.html 我们了解到,mysql通过master写日志,slave读取并执行日志内容从 ...

  7. mysql 双主复制 centos7

    mysql 安装请看:http://www.cnblogs.com/leohe/p/6839705.html 双主复制设置 1. 两台虚拟机,都是 centos7 主: 10.1.1.115 从: 1 ...

  8. mysql双主复制总结

    双主复制: 1).在两台服务器上各自建立一个具有复制权限的用户: 2).修改配置文件: # 主服务器A上 [mysqld] server-id = 10 log-bin = mysql-bin rel ...

  9. mysql传统主从、双主复制+keepalived配置步骤

    mysql主从.主主复制(双主复制)配置步骤 一:MySQL复制: MySQL复制简介: 将master服务器中主数据库的ddl和dml操作通过二进制日志传到slaves服务器上,然后在master服 ...

随机推荐

  1. Tensorflow安装教程-Win10环境下

    背景:最新版的Tensoflow已经支持Python3.6 首先,下载并安装Anaconda3 内置Python3.6的版本 https://www.continuum.io/downloads 安装 ...

  2. k8s的ingress使用

    ingress 可以配置一个入口来提供k8s上service从外部来访问的url.负载平衡流量.终止SSL和提供基于名称的虚拟主机. 配置ingress的yaml: 要求域名解析无误 要求servic ...

  3. 【好书推荐】《剑指Offer》之软技能

    俗话说,对于程序员来讲,每年都应该出去面试一下,看看自己的技术能力在外面处于什么水平.程序员在一个公司一个环境一个业务干得太久,很容易丧失学习的动力,获得的仅仅是从新手到熟手.当然,我相信在各行各业均 ...

  4. Spring Junit测试(非web,即不包含Controller测试)

    使用Spring-Test对Spring框架进行单元测试 配置过程: lib加入导入spring-test.jar和junit包 或者使用Maven依赖: <dependency> < ...

  5. CQRS之旅——旅程1(我们的领域:Contoso会议管理系统)

    旅程1:我们的领域:Contoso会议管理系统 起点:我们从哪里来,我们带来了什么,谁将与我们同行?" 只要前进,我愿意去任何地方." --大卫•利文斯通 本章介绍了一个虚构的公司 ...

  6. android 开发-数据存储之文件存储

    android的文件存储是通过android的文件系统对数据进行临时的保存操作,并不是持久化数据,例如网络上下载某些图片.音频.视频文件等.如缓存文件将会在清理应用缓存的时候被清除,或者是应用卸载的时 ...

  7. Spring Cloud(3):Ribbon的使用

    基于搭建好的Eureka Server+Eureka Client:https://www.cnblogs.com/xuyiqing/p/10861541.html 有了服务,那么现在学习如何调用服务 ...

  8. border实现矩形中斜线分割 切换按钮

    思路:将该矩形分为三个div,中间的div使用border的特性 代码实现如下:

  9. 消除ImageButton背景图片

    下图被选为作为ImageButton的Src,可它自带了个灰色的背景图,而我只想用这个圆圈作为imageButton的src,这怎么办呢? 遇到此情况可以设置imagebutton的backgroun ...

  10. Struct2标签的传值方式(转载)

    "#request.userList"> "center"> "id"/> : "username"/ ...