Mysql主从分离与双机热备超详细配置
一、概述
本例是在Windows环境,基于一台已经安装好的Mysql57,在本机安装第二台Mysql57服务。
读完本篇内容,你可以了解到Mysql的主从分离与双机热备的知识,以及配置期间问题的解决方案。
二、过程
1、安装第二台数据库
复制一份mysql的安装目录,取名MySQL Server 5.7_3307(从数据库)。

清空Data文件夹,并修改my.ini

client>port 改成3307。

mysqld>port 改成3307。

mysqld>datadir 改为从数据库的Data文件路径。

在C:/ProgramData/MySQL/MySQL Server 5.7_3307建一个Uploads文件夹,没有的文件需要补齐。或者自己选择文件路径。

在从数据库的bin文件夹下打开命令行,执行mysql安装初始化命令
mysqld -initialize -insecure -user=mysql

此时从数据库的Data目录会增加文件。

将主数据库的数据库文件夹复制过来(主库Data目录下,文件夹名称就是数据库名称),如果是InnoDB引擎,需要将Data下的ibdata1文件复制过来,否则不能显示表。
此处将之前数据库的api数据库(看你需要复制哪些数据库,不复制也没问题,Mysql自身表需要复制)复制到从数据库。

在从库bin目录下打开命令行并执行
mysqld --install MySQL57_3307
MySQL57_3307为服务名称,出现Service successfully installed.即为注册成功。

使用win+r,弹出命令输入框,输入services.msc,出现服务窗口。

注册成功。但是选中MySQL57_3307,右键属性。发现未指定mysql启动文件。

win+r,输入regedit打开注册表。按照以下路径打开:

找到MySQL57_3307,将ImagePath修改成:
"D:\MySQL\MySQL Server 5.7_3307\bin\mysqld.exe" --defaults-file="D:\MySQL\MySQL Server 5.7_3307\my.ini" MySQL57
刷新服务并启动。

用HeidiSQL(与Navicat同为Mysql客户端)连接,由于复制了主库的mysql库,所以用户名和密码与主库一致,端口为从库的3307。

连接成功:

表文件成功复制:

2、配置主从
在my.ini里的mysqld后进行配置
主库配置:
# Server Id.
server-id= # 设置同步数据库名
binlog-do-db=api # 不记录日志的库,即不需要同步的库
binlog-ignore-db=mysql # Log for sync
log-bin=mysql-bin
从库配置:
# Server Id.
server-id= # 从服务器同步数据库名
replicate-do-db=api # 不从服务器同步数据库名
replicate-ignore-db = mysql,information_schema,performance_schema # Log for sync
log-bin=mysql-bin
需要重启主库与从库服务,后在主库执行查询,查看主库状态:
SHOW MASTER STATUS;

在从库执行语句,同步数据:
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=, MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=;
在从库执行开始同步:
START SLAVE;
执行查看从库状态:
SHOW SLAVE STATUS;
结果为yes,表示执行成功。

在主库插入数据,验证从库是否同步。
主库执行:

主库数据:

查看从库数据:

数据同步成功。
3、配置双机热备
3306库配置:
# Server Id.
server-id= # 设置同步数据库名
binlog-do-db=api # 不记录日志的库,即不需要同步的库
binlog-ignore-db=mysql # 从服务器同步数据库名
replicate-do-db=api # 不从服务器同步数据库名
replicate-ignore-db = mysql,information_schema,performance_schema # Log for sync
log-bin=mysql-bin
3307库配置:
# Server Id.
server-id= # 从服务器同步数据库名
replicate-do-db=api # 不从服务器同步数据库名
replicate-ignore-db = mysql,information_schema,performance_schema # 设置同步数据库名
binlog-do-db=api # 不记录日志的库,即不需要同步的库
binlog-ignore-db=mysql # Log for sync
log-bin=mysql-bin
查询3306库MASTER信息:
SHOW MASTER STATUS;

在3307库设置SLAVE信息:
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=, MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=;
查询3307库MASTER信息:
SHOW MASTER STATUS;

在3306库设置SLAVE信息:
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=, MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=;
测试1:在3306库插入数据
3306:

3307:

结果一致,正确。
测试2:在3307插入数据
3307:

3306:

结果一致,正确。
三、问题
在配置主从或双机热备失败,导致数据不一致时,不要手动删除mysql-bin文件,

可以先在数据库中停止从关系
STOP SLAVE;
然后重置主从关系,效果是文件夹中恢复为只有mysql-bin.000001,SHOW MASTER STATUS也是mysql-bin.000001。
RESET SLAVE;
RESET MASTER;
如果是双机热备,两个数据库都应执行此操作。
Mysql主从分离与双机热备超详细配置的更多相关文章
- MySQL数据库配置主从服务器实现双机热备
转自:http://www.cnblogs.com/cchun/p/3712637.html 一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168 ...
- MySQL7.5.15数据库配置主从服务器实现双机热备实例教程
环境说明 程序在:Web服务器192.168.0.57上面 数据库在:MySQL服务器192.168.0.67上面 实现目的:增加一台MySQL备份服务器(192.168.0.68),做为MySQL服 ...
- MySQL5.7.15数据库配置主从服务器实现双机热备实例教程
环境说明 程序在:Web服务器192.168.0.57上面 数据库在:MySQL服务器192.168.0.67上面 实现目的:增加一台MySQL备份服务器(192.168.0.68),做为MySQL服 ...
- MySQL主从复制,以及双机热备
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...
- MySQL架构备份之双机热备
M--S架构:实现双机热备(AB复制) 1.可以降低master读压力 2.可以对数据库做“热备”,热备只能解决硬件master硬件故障,软件故障等重大故障问题,但无法解决人为误操作导致的逻辑故障(列 ...
- Mysql双机热备--预备知识
1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务.当一台服务器 ...
- Keepalived双机热备
一,Keepalived双机热备的应用场景 1,网站流量不高,压力不大,但是对服务器的可靠性要求极其高,例如实时在线OA系统,政府部门网站系统,医院实时报医系统,公安局在线报案系统,股市后台网站系统等 ...
- ansible自动部署Keepalived实现Nginx服务双机热备
脚本实现通过ansible-playbook自动化安装Keepalived和配置,主要解决问题如下: Keepalived自动化安装: keepalived_vrid配置,自动根据vip获取最后一段作 ...
- (技能篇)双机热备之Oracle切换故障处理
背景: 以前做的的一个项目中使用了某国产双机热备产品,但是在数据库做双机热备时出现了一些问题,没办法.不得不研究一番了!经过两天的研究终于问题得以解决.将问题处理步骤记录下来以备后用,也希望能帮助到需 ...
随机推荐
- C#LeetCode刷题之#530-二叉搜索树的最小绝对差(Minimum Absolute Difference in BST)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4123 访问. 给定一个所有节点为非负值的二叉搜索树,求树中任意两 ...
- CPF 入门教程 - 数据绑定和命令绑定(二)
CPF netcore跨平台UI框架 系列教程 CPF 入门教程(一) CPF 入门教程 - 数据绑定和命令绑定(二) 数据绑定和Wpf类似,支持双向绑定.数据绑定和命令绑定是UI和业务逻辑分离的基础 ...
- Nginx学习简记_part1
内容概览 nginx简介 (1)介绍nginx的应用场景和具体可以做什么事情 (2)介绍什么是反向代理 (3)介绍什么是负载均衡 (4)介绍什么是动静分离 nginx安装 (1)介绍nginx在lin ...
- linux驱动之jiffies的理解
本文主要借鉴了http://blog.csdn.net/allen6268198/article/details/7270194,非常感谢该网友的分享. 在LINUX的时钟中断中涉及至二个全局变量一个 ...
- cinder migrate基础内容-1
一.卷迁移rest api接口 POST /v2/{project_id}/volumes/{volume_id}/action 迁移一个卷到特定的主机,在请求体中指定 os-migrate_volu ...
- 对于CSS里面我之前不太清楚的伪类,我做一些总结
格式: 标签 + : + 参数 +{ 可填背景颜色,字体颜色,鼠标样式,加粗等 } a:hover{ color:#f40;} :link表示鼠标点击之前的样式 :hover表示鼠标放上去的样式 :a ...
- CSS动画实例:行星和卫星
设页面中有<div class=" planet "></div>,用来绘制一个行星和卫星图形.这个图形包括三部分:行星.卫星和卫星旋转的轨道.定义. pl ...
- 新建一个Vue项目
node环境以及vue的安装可查看:https://www.cnblogs.com/renlywen/p/13522869.html 第一步:创建项目 终端输入: vue init webpack d ...
- 宝塔,一个免费好用的 Linux/Windows 服务器管理面板
宝塔面板是什么? 宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率.例如:创建管理网站.FTP.数据库,拥有可视化文件管理器,可视化软件管 ...
- python编程中的并发------协程gevent模块
任务例子:喝水.吃饭动作需要耗时1S 单任务:(耗时20s) for i in range(10): print('a正在喝水') time.sleep(1) print('a正在吃饭') time. ...