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切换故障处理
背景: 以前做的的一个项目中使用了某国产双机热备产品,但是在数据库做双机热备时出现了一些问题,没办法.不得不研究一番了!经过两天的研究终于问题得以解决.将问题处理步骤记录下来以备后用,也希望能帮助到需 ...
随机推荐
- ansibleAPI怎么做异步
在直接使用 ansible 时候有-B -p 参数可以启用异步操作,然后返回一个 job_id 值 [root@master ansible]# ansible node1 -B -P -m yum ...
- hge引擎示例教程cmake项目
hge引擎的示例代码在vs2017不能很好的运行,需要调不少东西,所以我将其重新整理成cmake的项目. 所有示例均在vs2017 msvc 下测试可以正常运行. 由于缺少libhgehelp.a所以 ...
- 年近而立,Java何去何从?
摘要:各种新需求新应用层出不尽,各路新生代编程语言异军突起等等,Java未来会不会继续受欢迎?曾经备受关注的Java是否能紧跟时代步伐?新基建时代破茧重生引领云端未来潮流? 1995年第一个Java版 ...
- unity探索者之iOS微信登录、分享
版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8405700.html iOS接入微信的SDK相对于安卓要麻烦一点,除了核心功能代码 ...
- magento2 定时任务
* * * * * /usr/bin/php /www/wwwroot/m2.demo.evebit.cn/bin/magento cron:run | grep -v "Ran jobs ...
- 在Linux命令行中使用计算器的5个命令
大家好,我是良许. 在使用 Linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器.在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以让我们执行科学计算.财务计算或者一些 ...
- 牛客网PAT练兵场-人口普查
题目地址:https://www.nowcoder.com/pat/6/problem/4054 题解:结构体排序即可 /** * Copyright(c) * All rights reserved ...
- Shell编程—用户输入
1命令行参数 1.1读取参数 bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的所有参数.这也包括shell所执行的脚本名称.位置参数 ...
- java爬取图片示例
爬虫是什么 这里引用一下 wiki 中关于 网络爬虫的定义,相信大家看过后会有一个清晰的认识 网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器 ...
- 焦大翻译:提防一些seo错误认知(完整版)
http://www.wocaoseo.com/thread-179-1-1.html 多人在开始做seo的时候,都曾经尝试通过黑盒测试来找出哪些因素对排名有效果. 黑盒测试是我们IT行业常用术语,它 ...