在搭建mysql的数据库双主双从之前,我们在四台不同的服务器上搭建mysql数据库,安装的步骤在下面的博客中:

linux安装mysql :https://blog.csdn.net/wangyunzhao007/article/details/104230509

一、架构图

二、配置

1.主机配置

第一台主机的配置(192.168.157.130)

#修改配置文件
vim /etc/my.cnf

在my.cnf中加入以下配置文件

#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT
# 在作为从数据库的时候, 有写入操作也要更新二进制日志文件
log-slave-updates
#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1, 取值范围是1 .. 65535
auto-increment-increment=2
# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535
auto-increment-offset=1

第二台主机的配置(192.168.157.133)

#修改配置文件
vim /etc/my.cnf
#主服务器唯一ID
server-id=3
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)Java
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT
# 在作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates
#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 .. 65535
auto-increment-increment=2
# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535
auto-increment-offset=2

2.从机配置

第一台从机的配置(192.168.157.129)

#修改配置文件
vim /etc/my.cnf
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay

第二台从机的配置(192.168.157.132)

#修改配置文件
vim /etc/my.cnf
修改配置文件: vim /etc/my.cnf
#从服务器唯一ID
server-id=4
#启用中继日志
relay-log=mysql-relay

三、主机,从机都重启mysql服务

#重启mysql服务器
systemctl restart mysqld
#查看mysql的状态
systemctl status mysqld

重启mysql服务器,查看mysql的状态,如下如是启动成功的状态,代表重启成功;

四、主机从机都关闭防火墙或者将3306端口打开

1.关闭防火墙

#关闭防火墙
service firewalld stop/systemctl stop firewalld
#开启防火墙
service firewalld start/systemctl start firewalld
#查看防火墙的状态
systemctl status firewalld

关闭防火墙之后我们需要查看防火墙的状态,下图分别使我们开启防火墙之后和关闭防火墙之后分查看防火墙的状态:

2.在防火墙开端口 (如果选择了关闭防火墙就不用做这步了)

#开3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp

添加成功如下图所示,这时候还需要重新载入防火墙才能生效

#防火墙重新载入
firewall-cmd --reload

重新载入防火墙成功

然后验证是否添加成功

#查看是否添加成功
firewall-cmd --zone=public --query-port=3306/tcp

验证成功,已经添加完毕

五、在两台主机上建立账户并授权给从机(给从机分配账号,用来连接)

1.在liunx系统中登录mysql的主机

#u后是root账户,-p后密码是123456
mysql -uroot -p123456

2.给从机分配一个账号用来做主从复制 

#在主机MySQL里执行授权命令
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

 3.查看两个master的状态,并记录必要信息,在从机连接时需要。

#查询master的状态
show master status;

输入命令后我们可以看到一下几个信息 :

记录下File和Position的值
执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化

六、开启主从复制

1.两组主从

先做其中一组(130和129的)

在liunx系统中登录mysql的从机(129)

#u后是root账户,-p后密码是123456
mysql -uroot -p123456

停止主从复制(不论有没有开启)

#停止从服务器复制功能
stop slave;

重新配置主从

reset master;

配置复制的主机(129复制130,汉字需要改成第五步中上图show master中的值)

#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.日志具体数字',MASTER_LOG_POS=位点具体值;

示例,这是根据我的信息写的命令:

CHANGE MASTER TO MASTER_HOST='192.168.157.130',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2635;

启动复制

start slave;

查看主从复制的状态

#查看从服务器状态
show slave status\G;

看到下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

则证明主从复制成功了。

另外一组是一样的,照着上边的过程搭建一遍。

2.主机互为主从

133复制130

刚刚130的从机129复制了130,133的命令和步骤和刚刚129复制的一样。两个主机互为主从也就是说,两个主机互相复制。

停止主从复制(不论有没有开启)

#停止从服务器复制功能
stop slave;

重新配置主从

reset master;

配置复制的主机(133复制130,汉字需要改成第五步中上图130主机show master中的值)

#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.日志具体数字',MASTER_LOG_POS=位点具体值;

示例,这是根据我的信息写的命令:

CHANGE MASTER TO MASTER_HOST='192.168.157.130',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2635;

启动复制

start slave;

查看主从复制的状态

#查看从服务器状态
show slave status\G;

看到下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

则证明133复制130主从复制成功了。

130复制133

停止主从复制(不论有没有开启)

#停止从服务器复制功能
stop slave;

重新配置主从

reset master;

配置复制的主机(130复制133,汉字需要改成第五步中上图133主机show master中的值)

#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.日志具体数字',MASTER_LOG_POS=位点具体值;

示例,这是根据我的信息写的命令:

CHANGE MASTER TO MASTER_HOST='192.168.157.133',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;

启动复制

start slave;

查看主从复制的状态

#查看从服务器状态
show slave status\G;

看到下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

则证明主从复制成功了。

两次的主从都成功了,说明互为主从就搭建完毕了。

【mysql】mysql的数据库主从2(双主双从)相关推荐

  1. MySQL数据库集群(双主双从)

    文章目录 MySQL数据库集群(双主双从) 实验环境 双主双从 双主 双从 进行测试 MySQL数据库集群(双主双从) 实验环境 保证每台centos7服务器配置静态的IP,初始化服务器,关闭防火前和 ...

  2. MySQL主从复制配置过程(双主双从模式)

    环境准备 为了搭建MySQL数据库主从复制(双主双从模式),准备一下四台服务器,并明确了各节点的角色及IP地址. 角色 IP地址 节点名称 Master1 192.168.67.140 CentOS0 ...

  3. MyCat学习:使用MySQL搭建主从复制(双主双从模式)

    首先,上一篇我们建立了一主一丛模式的MySQL读写分离 点击这里 那么接下来,我们搭建双主双从模式的读写分离,并且使用MyCat登录访问 原理:master1,master2,slave1,slave ...

  4. Mysql 集群双主双从安装使用详细讲解

    文章目录 下载Mysql 安装单机Mysql 配置Mysql集群 双Master配置 master1配置 master2配置 配置说明 双Slave配置 Slave1配置 Slave2配置 双 Mas ...

  5. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...

    [Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...

  6. Mycat实现Mysql的一主一从和双主双从读写分离

    前提是: 已经有了一主一从的Mysql服务架构. 已经安装启动好了mycat.并对mycat有一定了解. 实现 修改mycat的schema配置文件: <!--schema 标签用于定义 MyC ...

  7. MyCat实现MySQL读写分离(双主双从多库)

    在数据库集群架构中,主数据库负责处理事务性查询(写入操作),而从数据库只负责处理select查询(读操作),这样可以提高数据库整体读写性能.主数据库另外一个功能就是负责将数据变更同步到从数据库中. 读 ...

  8. MySQL 学习 - Replication集群 - 搭建 - 双主双从

    前言 我们这里说的是双主双从集群搭建,当然这个是看你实际业务,说白了一点 两个主节点双向同步,A集群挂掉时,B集群因为双向同步,立即可以开始工作,实现高可用 基本原理 具体流程 主库将变更写入到主库的 ...

  9. mycat与mysql proxy_高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)...

    既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 环境 centos6.4 ...

最新文章

  1. 阿里副总裁、自动驾驶掌舵人王刚离职!40岁转身再创业
  2. 数据如何从HBase读到MR
  3. logback 常用配置详解(二) appender
  4. 制造机器人的现状和发展趋势
  5. PHP-Windows下搭建PHP-MSF环境【原创】
  6. 东北林大计算机考研难吗,北京林业大学考研难吗?一般要什么水平才可以进入?...
  7. 安徽大学java期末_安微大学2017~2018年度期末考试题卷
  8. mt6761v/cbb处理器相当于骁龙多少?_三星S21骁龙版首个跑分成绩出炉 骁龙875或非正式名称...
  9. golang 捕获堆栈信息_一篇文章教你如何捕获前端错误
  10. 【TSP】基于matlab GUI模拟退火算法求解旅行商问题【含Matlab源码 1083期】
  11. 尚硅谷zookeeper入门笔记
  12. 赫兹的单位换算_hz单位换算
  13. COMSOL(1)寻找最小曲面
  14. 量化交易之设计模式篇 - 中介者模式
  15. 美国航空发动机发展经验,给中国的启示!
  16. mysql explain不准确_mysql explain预估剖析
  17. android 6g 有必要吗,手机6G运存真的有必要吗?这篇实测告诉你
  18. docker使用docker compose file部署项目时,实现容器卷挂载,并对容器内文件夹赋予权限
  19. 5G时代对IDC数据中心提出了怎样的要求?
  20. oracle 查找索引大小写,关于sql:Oracle中不区分大小写的搜索

热门文章

  1. golang bytes包 []byte 字节切片 简介
  2. exe文件图标变成了白色无图标
  3. php global变量无效
  4. SQL Server快捷键
  5. C语言中判断int,long型等变量是否赋值的方法
  6. 使用免费虚拟服务器建站并实现域名解析
  7. 2018年计算机学校迎新标语,2018大学新生开学迎新标语大全 创意迎新横幅标语
  8. 宝塔同时安装苹果cms海洋cms_★苹果cms常见问题有哪些?100个常见问题的解决方法...
  9. android floatingactionbutton样式,Android 之 FloatingActionButton
  10. git 提交到某分支_Git如何拉取某个分支的某段提交