mysql-mmm操作总结
更新:HHH   时间:2023-1-7


五台虚拟机
双网卡   第一块内网,第二块外网
80.100   主数据库1
80.101   主数据库2
80.102   从数据库1
80.103   从数据库2
80.104    监控端 monitor
搭建阿里云yum仓库:
vi /etc/yum.repos.d/ali.repo
[Ali]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

scp /etc/yum.repos.d/ali.repo  root@192.168.80.101:/etc/yum.repos.d/

scp /etc/yum.repos.d/ali.repo  root@192.168.80.102:/etc/yum.repos.d/

scp /etc/yum.repos.d/ali.repo  root@192.168.80.103:/etc/yum.repos.d/

scp /etc/yum.repos.d/ali.repo  root@192.168.80.104:/etc/yum.repos.d/


注:如果有ip地址,关了网卡ping不通网页修改以下内容

vi /etc/sysconfig/network-scripts/ifcfg-ens32      //进入网卡配置文件

把圈中的命令删掉在使用下一条命令
systemctl   restart network    //重启网卡
四台服务器安装以下程序:

systemctl stop firewalld      //关闭防火墙
setenforce 0         //关闭监控

[root@lq5 yum.repos.d]# ifconfig ens34 down     //关闭ens34网卡
[root@lq5 yum.repos.d]# ifconfig ens34 up          //开启ens34网卡

yum install -y wget

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

yum -y install epel-release

yum clean all && yum makecache

yum -y install mariadb-server mariadb

yum install mariadb-server -y

在主服务器上

[root@NGINX ~]# systemctl start mariadb
[root@NGINX ~]# vi /etc/my.cnf
[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
log_slave_updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1

[root@NGINX ~]#  service mariadb restart
[root@NGINX ~]# netstat -anpt | grep 3306

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

[root@NGINX ~]# scp /etc/my.cnf root@192.168.80.101:/etc/
[root@NGINX ~]# scp /etc/my.cnf root@192.168.80.102:/etc/
[root@NGINX ~]# scp /etc/my.cnf root@192.168.80.103:/etc/
[root@NGINX ~]# mysql -u root

MariaDB [(none)]> grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> show master status \G

在从服务器上:

[root@test ~]# vi /etc/my.cnf

修改一下Server-id ,其他从服务器也要修改

[root@test ~]# service mariadb restart

[root@test ~]# mysql -u root

MariaDB [(none)]> grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';

MariaDB [(none)]> change master to master_host='192.168.80.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=490;

MariaDB [(none)]> start slave;

MariaDB [(none)]> show slave status \G

MariaDB [(none)]> show master status \G


在主服务器中:

MariaDB [(none)]> change master to master_host='192.168.80.101',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=410;

MariaDB [(none)]> start slave;

MariaDB [(none)]> show slave status \G


在从服务器1上:

vi /etc/my.cnf

[root@NGINX ~]#  service mariadb restart
[root@NGINX ~]# netstat -anpt | grep 3306

mysql -u root

MariaDB [(none)]> change master to master_host='192.168.80.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=490;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G

在从服务器2上:

[root@test ~]# vi /etc/my.cnf

修改一下Server-id ,其他从服务器也要修改

[root@NGINX ~]#  service mariadb restart
[root@NGINX ~]# netstat -anpt | grep 3306

mysql -u root

MariaDB [(none)]> change master to master_host='192.168.80.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=490;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G

测试:
在主备服务器上创建一个空库:
MariaDB [(none)]> create database aa;
MariaDB [(none)]> show databases;

在从服务器上1上:


在从服务器2上:

到此,主主备份主从同步成功

现在做对mmm进行配置
-------安装MMM----在所有服务器上安装-----注意,epel源要配置好
yum -y install mysql-mmm*

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

在主服务器上:

[root@NGINX ~]# cd /etc/mysql-mmm/
[root@NGINX mysql-mmm]# ls

[root@NGINX mysql-mmm]# vi mmm_common.conf

修改以下圈住部分:

发送给其他数据库服务器
 scp mmm_common.conf root@192.168.80.101:/etc/mysql-mmm/
 scp mmm_common.conf root@192.168.80.102:/etc/mysql-mmm/
 scp mmm_common.conf root@192.168.80.103:/etc/mysql-mmm/
  scp mmm_common.conf root@192.168.80.104:/etc/mysql-mmm/

在monitor服务器上配置:

[root@MYSQL ~]# cd /etc/mysql-mmm/
[root@MYSQL mysql-mmm]# vi mmm_mon.conf

在其它mysql服务器上:
[root@NGINX mysql-mmm]# vi /etc/mysql-mmm/mmm_agent.conf

主数据库1:this db1
主数据库2:this db2
从数据库1:this db3
从数据库2:this db4
monitor服务器:this db5

是在各自的配置文件修改,不是在一个虚拟机,每个虚拟机都要执行的操作。

在四台数据库中为mmm_agent授权
grant super, replication client, process on *.* to 'mmm_agent'@'192.168.80.%' identified by '123';

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

systemctl start mysql-mmm-agent

在monitor服务器上配置:

[root@MYSQL mysql-mmm]# vi mmm_mon.conf

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

netstat -anp | grep 9988

mmm_control checks all

mmm_control show

查看是否有漂移地址
主数据库1

从数据库1

从数据库2

模拟主数据库1,从数据库1故障,查看漂移地址是否从主数据库1漂移到主数据库2,和从数据库1的地址漂移到从数据库2上去
主数据库1
systemctl stop mariadb
主数据库2

从数据库1
systemctl stop mariadb
从数据库2

返回云计算教程...