mysql51:192.168.4.51 主
mysql52:192.168.4.52 从
mysql50:192.168.4.50 客户机
 
1.MySQL一主一从
 
1.1 51,52 安装mysql,设置密码123456
51:
[mysqld]
log-bin=master51
server_id=51
binlog_format="mixed"
52:
[mysqld]
log-bin=mysql52
server_id=52
binlog_format="mixed"
 
1.2 主库授权
需要的权限为REPLICATION SLAVE,允许其从Slave服务器访问:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replicater'@'192.168.4.%' IDENTIFIED BY '123qqq...A';
 
检查Master服务器的同步状态
在已经初始化现有库的情况下,查看MASTER状态,记录下当前的日志文件名、偏移的位置(下面SLAVE发起复制时需要用到):
mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
             File: master51.000001
         Position: 453
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
 
1.3 从库配置(52)
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.4.51',
    -> MASTER_USER='replicater',
    -> MASTER_PASSWORD='123qqq...A',
    -> MASTER_LOG_FILE='master51.000001',
    -> MASTER_LOG_POS=453;
mysql> START SLAVE;   //启动复制
mysql> SHOW SLAVE STATUS\G
...
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
...
注意:一旦启用SLAVE复制,当需要修改MASTER信息时,应先执行STOP SLAVE停止复制,然后重新修改、启动复制。
主从配置好后,Master写的数据可以同步到Slave上,Slave的数据不能同步到Master上。
 
在Master服务器上可查看Slave主机的信息
mysql> SHOW SLAVE HOSTS;
+-----------+------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID                           |
+-----------+------+------+-----------+--------------------------------------+
|        52 |      | 3306 |        51 | cecb01aa-2f8f-11e9-bab2-5254002b03e1 |
+-----------+------+------+-----------+--------------------------------------+
 
2.配置主从从同步结构
配置主机192.168.4.51为主数据库服务器
配置主机192.168.4.52为51主机的从库服务器
配置主机192.168.4.53为52主机的从库服务器
客户端连接主数据库服务器51主机创建的数据,连接52和53主机时,也可以访问到库、表、记录。
 
2.1 配置主机192.168.4.53为52主机的从库服务器
2.1.1 在服务器192.168.4.52上对user53用户进行授权
mysql> grant replication slave on *.* to user53@"192.168.4.53" identified  by "123qqq...A";
]# vim /etc/my.cnf
...
log_slave_updates   //允许级联复制
mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
             File: mysql52.000001
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
 
2.1.2 配置从服务器192.168.4.53
验证登陆
]# mysql -h192.168.4.52 -uuser53 -p123qqq...A
正常登陆:
]# mysql -uroot -p123456
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.4.52',
    -> MASTER_USER='user53',
    -> MASTER_PASSWORD='123qqq...A',
    -> MASTER_LOG_FILE='mysql52.000001',
    -> MASTER_LOG_POS=154;
 
************************
修改密码验证:
[mysqld]
validate_password_policy=0
validate_password_length=6
************************
 
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
...
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
...
如果出问题
mysql>STOP SLAVE;
mysql>RESET SLAVE;
mysql>START SLAVE;
或者
mysql> change master to
可以单独修改某一句
 
2.1.3 检测:
51写的数据会同步到52,53
52写的数据会同步到53
53写的数据只会再本地
 
3.配置半同步复制模式
开启案例1 主库192.168.4.51 半同步复制模式
开启案例1 从库192.168.4.52 半同步复制模式
开启案例1 从库192.168.4.53 半同步复制模式
查看半同步复制模式是否开启
 
3.1 查看是否允许动态加载模块
mysql> show variables like 'have_dynamic_loading';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| have_dynamic_loading | YES   |
+----------------------+-------+
 
3.1 命令行加载插件,用户需有SUPER权限
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
从库上面操作:
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
查看系统库下的表,模块是否安装成功:
mysql> SELECT PLUGIN_NAME,PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
 
启用半同步复制,在安装完插件后,半同步复制默认是关闭的
主库上面执行:
mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;
从库上面执行:
mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;
查看半同步复制模式是否启用:
mysql> show variables like "rpl_semi_sync_%_enabled";
 
永久启用半同步复制
主库配置
]# vim /etc/my.cnf
[mysqld]
plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1
从库配置
]# vim /etc/my.cnf
[mysqld]
plugin-load=rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1
在高可用架构下,master和slave需同时启动,以便在切换后能继续使用半同步复制
master51 ~]# vim /etc/my.cnf
[mysqld]
plugin-load \
="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1
 
查看:
mysql> show variables like "rpl_semi_sync_%_enabled";
+------------------------------+-------+
| Variable_name                | Value |
+------------------------------+-------+
| rpl_semi_sync_master_enabled | ON    |
| rpl_semi_sync_slave_enabled  | ON    |
+------------------------------+-------+

三十四.MySQL主从同步 、主从同步模式的更多相关文章

  1. Python学习日记(三十四) Mysql数据库篇 二

    外键(Foreign Key) 如果今天有一张表上面有很多职务的信息 我们可以通过使用外键的方式去将两张表产生关联 这样的好处能够节省空间,比方说你今天的职务名称很长,在一张表中就要重复的去写这个职务 ...

  2. FreeSql (三十四)CodeFirst 迁移说明

    FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能. 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也 ...

  3. Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  4. “全栈2019”Java多线程第三十四章:超时自动唤醒被等待的线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  5. “全栈2019”Java第三十四章:可变参数列表

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. spring boot 常见三十四问

    Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...

  7. COJ966 WZJ的数据结构(负三十四)

    WZJ的数据结构(负三十四) 难度级别:C: 运行时间限制:20000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给一棵n个节点的树,请对于形如"u  ...

  8. NeHe OpenGL教程 第三十四课:地形

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫

    JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...

随机推荐

  1. MRR,BKA,ICP相关

    MRR Multi-Range Read,多范围读,5.6以上版本开始支持 工作原理&优化效果: 将查询到的辅助索引结果放在一个缓冲(read_rnd_buffer_size = 4M)中 将 ...

  2. Django model反向关联名称的方法(转)

    原文:https://www.jb51.net/article/152825.htm

  3. springboot + shiro 构建权限模块

    权限模块基本流程 权限模块的基本流程:用户申请账号和权限 -->登陆认证 -->安全管控模块认证 -->调用具体权限模块(基于角色的权限控制) --> 登陆成功 -->访 ...

  4. 自定义AuthorizeFilter

    using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization.Infrastructure; u ...

  5. iOS动画:CAKeyframeAnimation

    网络中Core Animation类的继承关系图       属性简介 @interface CAKeyframeAnimation : CAPropertyAnimation /* 提供关键帧数据的 ...

  6. SVN上传本地项目到服务器

    1. 在服务器新建一个文件夹目录: 2. 将新建的目录在本地check out下来: 3. 将自己的项目拷贝到check out下来的文件夹下: 4. 右键点击svnàAdd,选择所有添加: 5. 右 ...

  7. zookeeper安装简要步骤

    vi zoo.cfg1.dataDir=/var/zookeeper2.server.1=zoo1:2888:3888server.2=zoo2:2888:3888server.3=zoo3:2888 ...

  8. 戴尔 R730 服务器装 server 2016。

    服务器里面原装系统是 centos 7 ,服务器快递过来时 我没用root账号,(主要是主管忘了这台服务器用户名密码了). 需要用的系统是 server 2016 我这边就按正常的装机流程装机. 1, ...

  9. Linux学习笔记(十六)Linux网络管理:网络基础(一)

    一.OSI7层模型协议 二.TCP/IP四层协议模型(五层) 1.网络接入层 网络接入层与OSI参考模型中的物理层和数据链路层相对应,它负责监视数据在主机和网络之间的交换.事实上,TCP/IP本身并未 ...

  10. Windows——Thinkpad 开机显示pwmtr64v.dll找不到指定的模块

    解决方法:进入设备管理器,展开系统设备分页,找到Lenovo Power Manager ,右键,更新驱动程序,浏览计算机上的驱动程序, 让我从计算机上的可用驱动程序列表中选取,选择Lenovo Po ...