#### 说明
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. Look into Bitmap images

    What's a Bitmap image? I'm not going to explain the differences between raster and vector images, no ...

  2. 【python测试开发栈】python基础语法大盘点

    周边很多同学在用python,但是偶尔会发现有人对python的基础语法还不是特别了解,所以帮大家梳理了python的基础语法(文中的介绍以python3为例).如果你已然是python大牛,可以跳过 ...

  3. npm报错:无法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本

    npm报错 在 windows终端输入 vue init webpack app, 创建一个名为 app 的 Vue 项目时报错如下: 无法加载文件 D:\nodejs\node_global\web ...

  4. React组件间的通讯

    组件化开发应该是React核心功能之一,组件之间的通讯也是我们做React开发必要掌握的技能.接下来我们将从组件之间的关系来分解组件间如何传递数据. 1.父组件向子组件传递数据 通讯是单向的,数据必须 ...

  5. 防火墙和SELinux复习02

    1.防火墙 防火墙主要起隔离作用,严格的过滤入站,允许出站.又分为硬件防火墙和软件防火墙,硬件防火墙主要保护一群机器,而软件防火墙主要保护本机. 防火墙相关命令:systemctl status fi ...

  6. 读取FANUC进给倍率

    读取FANUC机床的倍率信息需要用到 FOCAS链接库. 根据FANUC的连接手册可以知道,进给倍率信号存在 Gn012寄存器中.在机床上更改倍率开关,发现G0012寄存器值变化,经验证G0012就是 ...

  7. MySQL常用的查询语句回顾

    让你快速复习语句的笔记宝典. create table users(    username varchar(20) primary key,    userpwd varchar(20) ) alt ...

  8. vue 父子组件传值,兄弟组件传值

    父子组件中的传值 父向子    v-bind props <!-- 组件使用v-bind传值 --> <router :msg="msg"></rou ...

  9. Python3 之 with语句(高效、便捷)

    在实际的编码过程中,有时有一些任务,需要事先做一些设置,事后做一些清理,这时就需要python3 with出场了,with能够对这样的需求进行一个比较优雅的处理,最常用的例子就是对访问文件的处理. 文 ...

  10. 【Luogu P1878】舞蹈课

    Luogu P1878 事实上这道题并不难,但我真没弄懂我手写堆为什么过不了.所以 STL大法好!!! 基本思路 对于每一对相邻异性,将他们的舞蹈技术的差插入一个堆 通过维护这个小根堆,每次就可以取得 ...