一:准备环境,yum搭建mysql数据库

二:设置主主同步

三:设置主从同步

四:安装mmm(五台虚拟机都要装)

五:故障测试

一:准备环境

1、准备5台虚拟机

(m1)master01                192.168.80.10

(m2)master02                192.168.80.20

(从数据库)slave01         192.168.80.30

(从数据库)slave02         192.168.80.40

(monitor服务器)监控器  192.168.80.50

2、先让虚拟机联网,我这里用的是桥接模式

3、配置ALI云源,然后安装epel-release源。(5台虚拟机都配置ALI云源)

yum install wget -y

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

//注意自己yum仓库配置文件的路径和名字别写错了

yum -y install epel-release

yum clean all && yum makecache

yum -y install mariadb-server mariadb

service firewalld stop

setenforce 0

systemctl restart mariadb

systemctl start mariadb

4、修改m1主配置文件

vi /etc/my.cnf //在[mysqld]下面添加以下内容,原有的内容不要动

[mysqld]

log_error=/var/lib/mysql/mysql.err //错误日志的路径

log=/var/lib/mysql/mysql_log.log //普通错误日志

log_slow_queries=/var/lib/mysql_slow_queris.log //慢查询日志

binlog-ignore-db=mysql,information_schema //不生成二进制日志的库

character_set_server=utf8 //字符集

log_bin=mysql_bin //二进制日志

server_id=1 //本机的id,跟其他服务器不能重复

log_slave_updates //允许从服务器来校正时间

sync_binlog=1 //

auto_increment_increment=2 //自增长一次递增多少

auto_increment_offset=1 //自增长的起始值

systemctl restart mariadb

netstat -anpt | grep 3306 //可以看到3306端口被检测

5、没有问题后,在m1操作把配置文件复制到其它3台数据库服务器上并启动服务器

scp /etc/my.cnf root@192.168.80.20:/etc/

//把80.10的/etc/my.cnf用root身份传输到80.20的/etc/。记得去改server_id

根据提示输入yes,然后输入192.168.80.20的登录密码

依次类推,传给80.30和80.40

6、注意:配置文件中的server_id 要修改,手动去修改每台数据库的server_id,每台不一样

二:配置主主同步(m1和m2互相为主)

1、在m1上为m2授予从的权限,在m2上也要为m1授予从的权限

先在m1登录数据库

mysql //我是yum安装的数据库,一开始没有设置用户和密码,所以直接登录了

grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';

//注意:我准备的5台虚拟机都是80网段的,所以这里写的是允许所有80网段的。用户名为replication。密码为123456。

flush privileges; //刷新权限

上面两步没有问题后,在m2登录数据库,使用这条命令

show master status; //记录日志文件名称和位置值

再回到m1

change master to master_host='192.168.80.20',master_user='replication',master_password='123456',master_log_file='mysql_bin.000006',master_log_pos=1984;

//注意ip地址,用户名,密码,二进制日志序号,数值。不要写错了。

如果报下面的错误

先stop slave; 再用change命令。

start slave;

show slave status \G //看到这两处显示Yes就可以了

2、在m2上操作,(同理)

在m2登录数据库

mysql //登录数据库

grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';

flush privileges;

去m1的数据库查看

show master status;

再回到m2

change master to master_host='192.168.80.10',master_user='replication',master_password='123456',master_log_file='mysql_bin.000008',master_log_pos=2474;

start slave;

show slave status \G

3、建库测试主主同步

create database dba; //在m1上建个库,m2上可以看到

drop database dba; //在m2上删除,m1也显示删除成功,同步成功。

三:设置主从同步

1、在两台从(192.168.80.30和192.168.80.40)上做,注意日志文件和位置参数的改变。

让这两个从认m1(192.168.80.10)为主。

在m1的数据库

show master status;

在两个从数据库输入下面命令

change master to master_host='192.168.80.10',master_user='replication',master_password='123456',master_log_file='mysql_bin.000008',master_log_pos=2474;

start slave;

show slave status \G

2、测试主从、主主、同步 情况

建立数据库,然后测试同步情况

……

四:安装MMM

1、在所有服务器上安装-----注意,epel源要配置好

yum -y install mysql-mmm*

//安装了mysql-mmm-agent(代理端,所有人都要有)跟mysql-mmm-monitor(在监视器上)

2、安装结束后,对mmm进行配置

cd /etc/mysql-mmm/

vi mmm_common.conf //所有主机上都要配置,直接复制多份

active_master_role      writer (从数据库为reader,两个主数据库和监控器是writer)

……

<host default>

cluster_interface       ens33

……

replication_user        replication

replication_password    123456

agent_user              mmm_agent

agent_password          123456

<host db1>

ip      192.168.80.10

mode    master

peer    db2

</host>

<host db2>

ip      192.168.80.20

mode    master

peer    db1

</host>

<host db3>

ip      192.168.80.30

mode    slave

</host>

<host db4>

ip      192.168.80.40

mode    slave

</host>

<role writer>

hosts   db1, db2

ips     192.168.80.110 //自己编写的地址,跟数据库在同一个网段就可以

mode    exclusive

</role>

<role reader>

hosts   db3, db4

ips     192.168.80.130, 192.168.80.140 自己编写的地址,跟数据库在同一个网段就可以

mode    balanced

</role>

:wq保存退出

3、把common.conf配置文件传给另外四台,注意我当前的位置

scp mmm_common.conf root@192.168.80.20:/etc/mysql-mmm/

scp mmm_common.conf root@192.168.80.30:/etc/mysql-mmm/

scp mmm_common.conf root@192.168.80.40:/etc/mysql-mmm/

scp mmm_common.conf root@192.168.80.50:/etc/mysql-mmm/

4、在monitor(监控器192.168.80.50)服务器上配置

cd /etc/mysql-mmm/ //改密码

vi mmm_mon.conf

<host default>

monitor_user        mmm_monitor

monitor_password    123456

</host>

5、在所有数据库上为mmm_agent授权

grant super, replication client, process on *.* to 'mmm_agent'@'192.168.80.%' identified by '123456';

6、在所有数据库上为mmm_moniter授权

grant replication client on *.* to 'mmm_monitor'@'192.168.80.%' identified by '123456';

flush privileges;

7、修改所有数据库的mmm_agent.conf

vi /etc/mysql-mmm/mmm_agent.conf

this db1 //根据规划进行逐一调整(192.168.80.10是db1,192.168.80.20是db2,192.168.80.30是db3,192.168.80.40是db4,跟之前的 mmm_common.conf配置文件对应上)

8、在所有数据库服务器上启动mysql-mmm-agent

systemctl start mysql-mmm-agent

systemctl enable mysql-mmm-agent

9、在monitor服务器上配置

vi mmm_mon.conf

……

ping_ips            192.168.80.10,192.168.80.20,192.168.80.30,192.168.80.40 //数据库服务器地址

auto_set_online     10 //间隔设置成10秒

……

systemctl start mysql-mmm-monitor   //启动mysql-mmm-monitor

mmm_control show //查看各节点的情况

db1(192.168.80.10) master/ONLINE. Roles: writer(192.168.80.110)

db2(192.168.80.20) master/ONLINE. Roles:

db3(192.168.80.30) slave/ONLINE. Roles: reader(192.168.80.140)

db4(192.168.80.40) slave/ONLINE. Roles: reader(192.168.80.130)

mmm_control checks all //显示很多OK

手动切换vip绑定:mmm_control move_role writer db1 (实验期间不要手动切换)

五:故障测试

1、停止m1   systemctl stop mariadb

确认 虚拟地址 110 是否移动到 m2 上。注意:主不会抢占

mmm_control show

db1(192.168.80.10) master/HARD_OFFLINE. Roles:

db2(192.168.80.20) master/ONLINE. Roles: writer(192.168.80.110)

在m1服务器上为监控机地址授权登录

grant all on *.* to 'testdba'@'192.168.80.%' identified by '123456';

flush privileges;

2、在监控服务器上登录

监控器上要安装mariadb,不然会报错没有mysql命令
yum install mariadb

mysql -utestdba -p -h 192.168.80.110 //虚拟地址

创建数据,测试同步情况。

3、验证将从服务器停止一台,另一台将接管两个虚拟IP,以保证业务不停止

mysql-mmm的搭建相关推荐

  1. mysql mmm vip_MySQL MMM架构看不到vip地址

    自己搭建好MySQL MMM(Master-Master Replication Manager)高可用架构后看不到vip地址,经过在网上找了大量的文章和自己平时的观察终于发现找出vip地址的方法了, ...

  2. mysql mmm 官方_mysql mmm

    Microsoft Azure部署MYSQL-MMM(3)配置MYSQL-MMM (3)安装配置MYSQL-MMM 在db1.db2.db3安装MMM所需要的Perl模块(所有服务器)执行该脚本,然后 ...

  3. mysql mmm配置_从零开始配置 MySQL MMM

    云平台是个好东西,MySQL-MMM 的典型配置是需要五台机器,一台作为MMM admin,两台master,两台slave.一下子找五台机器真不容易,何况还要安装同样的操作系统. 而有了cloud, ...

  4. 2012 iis php mysql_Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建wordpress博客教程

    Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程 一.环境说明: 操作系统:Windows Server2012 R2 PHP版本:php 5.5.8 MySQ ...

  5. Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境

    Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境 对于初学者来说,如果没有接触过java web开发的话,搭建开发环境将是一个门槛.以前一直 ...

  6. 体验MySQL MMM

    今天试验了一把MySQL MMM.(MySQL Master-Master Replication Manager)一个主主复制的管理工具,它提供了主机监控,MySQL服务监控,复制线程等多个方位的监 ...

  7. 从零开始配置MySQL MMM

    下面要配置的MySQL Cluster环境包含四台数据库服务器和一台管理服务器,如下: function IP Server Name server id monitor 192.168.84.174 ...

  8. iis8.5 php mysql_Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

    这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 201 ...

  9. rsyslog+mysql+loganalyzer 环境搭建日志服务器

    环境:CentOS6.6 rsyslog+mysql+loganalyzer 环境搭建日志服务器 Client端:    192.168.2.10 MySQL服务器:  192.168.2.11 # ...

  10. mysql集群搭建教程-mysql+windows篇

    张哥视频课:https://edu.csdn.net/course/play/7912 搭建MySQL集群,首先看了一些关于集群的资料,然后根据步骤一步步的整,遇到了一些问题,在这里把我遇到的问题以及 ...

最新文章

  1. SSM实现网上商城 有聊天功能
  2. python linux命令-Python执行Linux系统命令的4种方法
  3. Python的pycurl库升级升级失败的解决方法
  4. MUI 图标显示不出来 - 分析篇
  5. 分布式文件系统FastDFS安装教程
  6. Sql Server 删除所有表
  7. 第一次作业:阅读优秀博文感想
  8. 计算机辅助药物设计中的分子动力学模拟
  9. servlet是干什么的?
  10. 作为IT码农,我是如何给小孩取名字的(推荐收藏,总有需要的一天)
  11. MQL5 COOKBOOK: 获取仓位属性
  12. tom邮箱怎么样,邮箱一天能发多少邮件
  13. WeX5 V3.6 正式版核心特性
  14. 24时区来源,CST,CET,UTC,DST,Unix时间戳概述、关系、转换
  15. 使用任务计划实现宽带pppoe断线自动连接 - Windows
  16. 科技翻译面面观─ 从计算机领域谈起
  17. “ 请找出下面重复的字”
  18. odoo之审批 流程管理 模块
  19. springboot动态多数据源配置和使用(从数据库读取数据源配置)(三)
  20. 关于Spring boot中的Quartz配置启动开关问题(启动、停止)

热门文章

  1. 苹果云服务icloud_苹果手机怎么恢复通讯录?一键恢复技巧就在这里!
  2. 西门子安装未找到ssf文件_三菱、西门子软件安装常见出错解决方法「技成周报40期」...
  3. PAT 乙级 1100 校庆
  4. 「Java数据结构」手撕数组队列及环形数组队列。
  5. 用Matlab创建BP神经网络
  6. OpenGL---GLUT(一)
  7. 当前商务日语教材的现状及其建设建议
  8. 区块链中对于NFT与数字藏品的市场应用
  9. 特斯拉充电电流设置多大_特斯拉充电时间需要多久?汽车知识介绍
  10. word指定文档每页行数