操做环境:mysql
虚拟机:5台
双网卡 第一块内网,第二块外网(虚拟机必定要能上网)
192.168.80.100 主数据库1
192.168.80.101 主数据库2
192.168.80.102 从数据库1
192.168.80.103 从数据库2
192.168.80.104 监控端 monitor
5台虚拟机的防火墙必定要关:systemctl stop firewalld
setenforce 0sql
一、搭建阿里云yum仓库:数据库
[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
二、四台数据库服务器,安装如下程序yum install -y wget --安装下载工具
wget -O /etc/yum.repos.d/ali.repo http://mirrors.aliyun.com/repo/Centos-7.repo --下载aliyun的网络yum源
yum -y install epel-release --安装官方源
yum clean all && yum makecache --清除yum仓库缓存,在重建yum仓库
yum -y install mariadb-server mariadb --安装mariadb
centos
三、操做主数据库1vi /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
systemctl start mariadb --启动mariadb数据库
netstat -anpt | grep 3306
服务器
把配置文件复制到其它3台数据库服务器上并启动服务器(这里根据本身的实际状况)
提示:当你发送到目标主机后,它会把你原有内容覆盖掉。网络
scp /etc/my.cnf root@192.168.80.101:/etc/ scp /etc/my.cnf root@192.168.80.102:/etc/ scp /etc/my.cnf root@192.168.80.103:/etc/
mysqladmin -u root -p password "123" --给mysql设置用户名和密码 mysql -uroot -p123 --进入数据库,若是没有给mysql设置密码直接输入mysql便可
grant replication slave on *.* to 'myslave'@'192.168.80.%' identified by '123; --授予mysalve用户读取二进制文件
ide
show master status \G --查看master状态
工具
四、操做主数据库2vi /etc/my.cnf --修改一下Server-id,每台数据库Server-id不能同样
this
service mariadb restart --重启数据库
mysqladmin -u root -p password "123" --给mysql设置用户名和密码 mysql -uroot -p123 --进入数据库,若是没有给mysql设置密码直接输入mysql便可
grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123';
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;
提示:master_log_file='mysql_bin.000001',master_log_pos=490 这个参数是根据你的主数据库1 master状态 ,每一个人的都不同,根据本身的改。
start slave; --开启同步
show slave status \G --查看slave状态,根据截图效果
提示:根据红圈的内容,查看是否成功,成功只为YESshow master status \G --查看master状态
五、操做主数据库1mysql -uroot -p123 --进入数据库
change master to master_host='192.168.80.101master_user='myslave',master_password='123',master_log_file='mysql_bin.000004',master_log_pos=1098;
提示:master_log_file='mysql_bin.000004',master_log_pos=1098 这个参数是根据你的主数据库2 master状态 ,每一个人的都不同,根据本身的改。
start slave; --启动同步
show slave status \G --查看slave状态
提示:根据红圈的内容,查看是否成功,成功只为YES
六、操做从数据库1vi /etc/my.cnf --修改一下Server-id,每台数据库Server-id不能同样
systemctl start mariadb --启动mariadb数据库
mysqladmin -u root -p password "123" --给mysql设置用户名和密码 mysql -uroot -p123 --进入数据库,若是没有给mysql设置密码直接输入mysql便可
start slave; --启动同步
show slave status \G --查看slave状态,根据截图效果
提示:根据红圈的内容,查看是否成功,成功只为YES
七、操做从数据库2vi /etc/my.cnf --修改一下Server-id,每台数据库Server-id不能同样
systemctl start mariadb --启动mariadb数据库
mysqladmin -u root -p password "123" --给mysql设置用户名和密码 mysql -uroot -p123 --进入数据库,若是没有给mysql设置密码直接输入mysql便可
start slave; --启动同步
show slave status \G --查看slave状态,根据截图效果
提示:根据红圈的内容,查看是否成功,成功只为YES
八、否实现主主备份主从同步
在主数据库1上建立一个aa数据库,查看主数据库2是否备份成功,从数据库1和从数据库2是否同步成功。
192.168.80.101
192.168.80.102
192.168.80.103
九、安装MMM----在全部服务器上安装-----注意,epel源要配置好yum -y install mysql-mmm* --五台虚拟机都要安装监控软件
操做主数据库1cd /etc/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
十、在monitor服务器上配置:192.168.80.104
cd /etc/mysql-mmm/vi mmm_common.conf
提示:修改红线的内容
十一、5台服务器统一操做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服务器上配置:vi /etc/mysql-mmm/mmm_mon.conf
systemctl start mysql-mmm-monitor //启动mysql-mmm-monitor
netstat -anp | grep 9988
mmm_control checks all
mmm_control show
1三、查看是否有漂移地址
主数据库1
从数据库1
从数据库2
模拟主数据库1,从数据库1故障,查看漂移地址是否从主数据库1漂移到主数据库2,和从数据库1的地址漂移到从数据库2上去
主数据库1systemctl stop mariadb
主数据库2
从数据库1systemctl stop mariadb
从数据库2