#### 说明
Mysql主主互备即为两个mysql的互为备份机
 
##### Windows下安装步骤(Linux下步骤类似,基本就是装上mysql,然后修改配置来完成主从的设置)
- step1、下载mysql的zip包(目前测试版本为5.7.28不带debug的包)并解压两次,文件夹改名为master和slave,要安装两台机器或者一台机器用不同的端口装两个实例
- step2、在mster和slave文件夹下新建数据库配置文件my.ini(linux则直接在安装完成后修改my.conf配置文件),配置说明见文末,具体特殊参数设置请自行查询调整设置。
- step3、以管理员身份运行cmd,并cd到master和slave下的bin目录下(windows下切盘只需输入"盘符:"即可)
- step4、都执行安装前初始化命令完成初始化操作 mysqld --initialize --user=mysql --console 执行完成可以看到输出中生成了一个零时密码root@localhost:后端的一串字符,记录下来
- step5、执行服务安装命令 mysqld --install 服务名称(master和slave) --defaults-file="my.ini的全路径" 可看到提示服务安装完成
- step6、启动服务 net start master|slave(刚刚定义的服务名称)
- step7、登录mysql mysql -uroot -p [-P] [-h]密码为安装时生成的零时密码,登录完成后修改mysql密码,set password=password("密码")
- step8、登录数据库后执行show master status;记住File和Position的值
- step9、登录从库(两台互为从库),设置各自的主库 change master to master_host='主库的IP',master_port=主库的端口,master_user='登录主库用户名',master_password='登录主库的密码',master_log_file='主库中的File值',master_log_pos=主库中的Position值;
- step10、启动slave 从库中执行start slave; 可以新建库和表来测试是否已经自动完成同步
 
##### 备注
参考文档:https://www.cnblogs.com/yeya/p/11878009.html?utm_source=gold_browser_extension
 
***
#### master1
```
[client]
# 端口号,默认是3306,同一机器下不同的mysql实例端口号不能相同,不同机器可以直接不写即使用3306是端口
port=3307
default-character-set=utf8
[mysqld]
#主库配置(主库配置和备份配置主主时都需要配置,主备时对应配置一项即可)
server_id=1 ###主备的server_id需不同
log_bin=master-bin ###主主备份时必填,slave通过此文件进行同步
log_bin-index=master-bin.index
####master写入二进制配置
###binlog-do-db=test 指定需要写入二进制文件的库
binlog-ignore-db=mysql,information_schema,performance_schema ###指定不写入二进制文件中进行同步的库
auto-increment-increment=2 ###id自增步长
auto-increment-offset=1 ###id自增起始ID
####备份配置
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin ###必填,备份时根据的二进制
log-slave-updates=ON ### 主主时需设置为ON
####slave同步配置
###replicate-do-db=test 指定需要同步的库
replicate-ignore-db=mysql,information_schema,performance_schema ### 备份过滤不同步的库
# 设置为自己MYSQL的安装目录
basedir=E:/software/mysql/master
# 设置为MYSQL的数据目录,data文件夹由mysql自动生成
datadir=E:/software/mysql/master/data
port=3307
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER ###sql查询时的参数,也可安装后重新设置
# 开启查询缓存
explicit_defaults_for_timestamp=true
```
***
#### master2
```
[client]
# 端口号,默认是3306,同一个环境下不同的mysql实例端口号不能相同
port=3308
default-character-set=utf8
[mysqld]
#主库配置
server_id=2
log_bin=master-bin
log_bin-index=master-bin.index
####master写入二进制配置
###binlog-do-db=test 指定需要写入二进制文件的库
binlog-ignore-db=mysql,information_schema,performance_schema
auto-increment-increment=2
auto-increment-offset=2
####slave同步配置
###replicate-do-db=test 指定需要同步的库
replicate-ignore-db=mysql,information_schema,performance_schema
###从库配置
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
log-slave-updates=ON
# 设置为自己MYSQL的安装目录
basedir=E:/software/mysql/slave
# 设置为MYSQL的数据目录,data文件夹由mysql自动生成
datadir=E:/software/mysql/slave/data
port=3308
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
# 开启查询缓存
explicit_defaults_for_timestamp=true
```
#### windows下双活方案
- 场景:两台WindowsServer上分别安装了两个mysql数据库(主主互备)
- 说明:在其中一台机器上安装mysql-router,配置destinations(mysql server列表)为两台WindowsServer主机,模式为read-write,即可做到访问mysql-router主机路由到两个mysql上,原则上访问的为第一台mysql,当第一台挂掉可自动切换到第二台上,从而实现双活
- 安装说明:
- step1:当在两台数据库服务器上安装时直接下载windows版本(https://cdn.mysql.com//Downloads/MySQL-Router/mysql-router-8.0.18-winx64.zip),解压到指定安装目录(建议在非C盘下)
- step2:拷贝文末内容(mysqlrouter.conf)到解压目录下,生成配置文件mysqlrouter.conf,根据实际情况调整配置具体路径和数据库服务器的IP及端口
- step3:将mysql-router的bin目录加到系统环境变量或者cmd下切换到mysql-router的bin目录下,然后执行命令“mysqlrouter -c mysqlrouter.conf文件的路径”,即可启动mysql-router
- step4:应用服务(configmap.yaml)的mysql配置只需配置为mysql-router的所在机器的IP及设定的端口即可
- 备注说明:mysql-router的具体安装地址建议直接安装在应用服务器上,可以保证数据库服务器中任意一台挂掉不影响服务
```shell mysqlrouter.conf
[DEFAULT]
# 日志路径
logging_folder=E:\software\mysql-router\log
# 插件路径
plugin_folder=E:\software\mysql-router\lib
# 配置路径
config_folder=E:\software\mysql-router
# 运行时状态路径
#runtime_folder=E:\software\mysql-router\run
# 数据文件路径
data_folder=E:\software\mysql-router\data
[logger]
# 日志级别
level=INFO
# 以下选项可用于路由标识的策略部分
[routing:test]
# Router地址
bind_address=0.0.0.0:3309
# Router端口
#bind_port=3309
# 读写模式
mode=read-write
# 目标服务器
destinations=127.0.0.1:3307,127.0.0.1:3308
``` 

Mysql双活方案的更多相关文章

  1. MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS[转]

    MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS 简介 目前Mysql高可用的方案有好多,比如MMM,heartbeat+drbd,Cluster等,还有per ...

  2. MySql优化方案

    mysql优化方案总结 u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...

  3. MySQL备份方案-->(利用mysqldump以及binlog二进制日志)

                                                         MySQL备份方案-->(利用mysqldump以及binlog二进制日志) 随着数据不 ...

  4. Mysql主从方案的实现

    Mysql主从方案介绍 mysql主从方案主要作用: 读写分离,使数据库能支撑更大的并发.在报表中尤其重要.由于部分报表sql语句非常的慢,导致锁表,影响前台服务.如果前台使用master,报表使用s ...

  5. MySQL中间件方案盘点_搜狐科技_搜狐网

    MySQL中间件方案盘点_搜狐科技_搜狐网

  6. 实战体验几种MySQL Cluster方案(转)

    1.背景 MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,因此,我们考虑MySQL数据库满足下三点需求,考察市面上可行的解决方案: 高可用性:主服务器故障后可自动切换到后备 ...

  7. Docker容器内Mysql大小写敏感方案解决

    Docker容器内Mysql大小写敏感方案解决 一.(lower_case_table_names)参数说明 二.Docker 部署 MySql 并修改为大小写不敏感 2.1直接在Docker启动的时 ...

  8. Mysql备份方案总结性梳理

    Mysql备份方案总结性梳理   服务器 mysql 日志 数据库 配置 Mariadb binlog   mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种 ...

  9. MySQL 性能方案

    翻译自 dev.mysql.com/doc/refman/5.6/en/performance-schema.html 一.3个基本库 数据库初始化安装完毕会有三个基本库mysql .informat ...

随机推荐

  1. EXISTS的用法介绍

    比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID ...

  2. redhat 配置eth0网卡

                 redhat 找不到eth0等网卡设备 Serenity关注                                                         ...

  3. Java基础语法07-面向对象-多态

    抽象类 抽象方法 : 没有方法体的方法. 抽象类:被abstract所修饰的类. 抽象类的语法格式: [权限修饰符] abstract class 类名{ }[权限修饰符] abstract clas ...

  4. SqlServer2005 查询 第七讲 order by

    今天我们来讲sql命令中的参数order by的用法 order by order by:可以理解成[以某个字段排序] order by a,b // a和b都按升序 order by a,b des ...

  5. 前端与算法 leetcode 7. 整数反转

    目录 # 前端与算法 leetcode 7. 整数反转 题目描述 概要 提示 解析 解法 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 leetcode 7. 整数反转 题 ...

  6. nyoj 275-队花的烦恼一 (stack, push, pop)

    275-队花的烦恼一 内存限制:64MB 时间限制:3000ms 特判: No 通过数:11 提交数:14 难度:1 题目描述: ACM队的队花C小+经常抱怨:“C语言中的格式输出中有十六.十.八进制 ...

  7. ZeroC Ice发送大数据

    继上文,我们使用ZeroC Ice传递大块数据时,通常有两种做法,一种是一次请求,另一种就是分多次请求(,这种做法在官方文档有例子).选哪一种根据需要而定. 当分多次请求来完成一大块数据,到底选择每次 ...

  8. .Net Core 使用NPOI导入数据

    一.搭建环境 1.新建ASP.NET Core Web 应用程序 2.选择API 3.引用Swashbuckle.AspNetCore NuGet 包进行安装. Swashbuckle.AspNetC ...

  9. SpringBoot学习(一)—— idea 快速搭建 Spring boot 框架

    简介 优点 Spring Boot 可以以jar包的形式独立运行,运行一个Spring Boot 项目只需要通过 java -jar xx.jar 来运行. Spring Boot 可以选择内嵌Tom ...

  10. spring、mybatis、事务项目整合,附完整代码和数据库文件

    配置依赖项 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/ ...