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 |
+------------------------------+-------+
- Python学习日记(三十四) Mysql数据库篇 二
外键(Foreign Key) 如果今天有一张表上面有很多职务的信息 我们可以通过使用外键的方式去将两张表产生关联 这样的好处能够节省空间,比方说你今天的职务名称很长,在一张表中就要重复的去写这个职务 ...
- FreeSql (三十四)CodeFirst 迁移说明
FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能. 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也 ...
- Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- “全栈2019”Java多线程第三十四章:超时自动唤醒被等待的线程
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java第三十四章:可变参数列表
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- spring boot 常见三十四问
Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...
- COJ966 WZJ的数据结构(负三十四)
WZJ的数据结构(负三十四) 难度级别:C: 运行时间限制:20000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给一棵n个节点的树,请对于形如"u ...
- NeHe OpenGL教程 第三十四课:地形
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫
JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...
随机推荐
- Android Manifest 中 uses-feature 和 uses-permission的作用 关系和区别
Manifest中的 <uses-permission android:name="android.permission.CAMERA" /> 和 <uses-f ...
- 撸一个 vue 的截图组件,按比例截取
<template> <div class="clip-img" :style="imgStyle"> <img :src=&qu ...
- centos yum安装与配置vsFTPd FTP服务器(转)
vsftpd作为FTP服务器,在Linux系统中是非常常用的.下面我们介绍如何在centos系统上安装vsftp. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...
- java 禁用科学计数法
禁用科学计数法 Double num = 80000000000.000001; System.out.println("默认计数法:num=" + num); NumberFor ...
- 在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名)
原文:在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- C#操作Windows控制面板
先介绍一下Windows控制面板的一些操作,再介绍如何用C#语言来操作控制面板. 1.如何快速打开控制面板中的项目: 运行输入(大小写不敏感) control system 打开系统信息 contro ...
- iOS - The file “XXX.app” couldn’t be opened because you don’t have permission to view it.
当引入第三方的框架的时候 容易产生以下问题: The file “XXX.app” couldn’t be opened because you don’t have permission to vi ...
- 什么是Familywise Error Rate
1.什么是Familywise Error Rate(FWE or FWER) 定义:在一系列假设检验中,至少得出一次错误结论的概率. 换句话说,是造成至少一次Type I Error的概率.术语FW ...
- 【leetcode】338 .Counting Bits
原题 Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate t ...
- scrapy框架介绍
一,介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性 ...