前四台数据库都要搭建mariadb数据库与环境都是一样的
搭建阿里云yum仓库环境:
vi local.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
四台服务器安装以下程序:
yum install -y wget
//安装下载wget软件
wget -O /etc/yum.repos.d/ali.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
//下载epel源
yum clean all
//清楚缓存
yum makecache
//建立数据库缓存
yum -y install mariadb-server mariadb
//安装数据库
以上是前四台要安装的环境最后一步安装mariadb数据库,安装环境到此结束
在主服务器上
systemctl start mariadb
//开启数据库
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
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
service mariadb restart && systemctl enable mariadb
//开启数据库并设置开机自启
netstat -anpt | grep 3306
//查看数据库端口
-------没有问题后,前提是后面3台操作过了上面的实验环境把配置文件复制到其它3台数据库服务器上并启动服务器-----
scp /etc/my.cnf [email protected]:/etc/
scp /etc/my.cnf [email protected]:/etc/
scp /etc/my.cnf [email protected]:/etc/
mysql_secure_installation
//数据库安装配置安全问题4台都要做
密码设置为abc123:y-n-y-y
mysql -uroot -pabc123
//进入数据库
表示我这个主数据库要让从数据库来访问开启授权权限
grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';
flush privileges;
show master status \G
在备用主服务器上:
[root@master2 ~]# vi /etc/my.cnfvi /etc/my.cnf
修改一下Server-id ,其他从服务器也要修改
[root@master2 ~]# service mariadb restart
[root@master2 ~]# mysql_secure_installation
[root@master2 ~]# mysql -uroot -pabc123
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;
start slave;
show slave status \G
出现双Yes说明master1中主的同步master2中的备的成功
在master2数据库中,此时master2成为主的授权给其他网段能够访问数据库的权限
stop slave; #先停止从的
grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';
show master status \G
在主服务器master1中:
change master to master_host='192.168.80.101',master_user='replication',master_password='123456',master_log_file='mysql_bin.000005',master_log_pos=410;
start slave;
show slave status \G
出现双Yes说明主主同步到此完成
如果过程中没有出现Yes,可能没有重启没有开启start slave模式,还有可能配置文件中没有修改id原因
在slave1从服务器1上:
stop slave;
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;
start slave;
show slave status \G
在slave2从服务器2上:
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;
start slave;
MariaDB [(none)]> show slave status \G
测试:
在主备服务器上创建一个空库:
create database ee;
show databases;
现在做对mmm进行配置5台机子联网下载mmm最后一台监控端monitor
-------安装MMM----在所有服务器上安装-----注意,epel源要配置好
yum -y install mysql-mmm*
//5台都要安装
-------安装结束后,对mmm进行配置------
在slave1主服务器上:
cd /etc/mysql-mmm/
//切换目录
标识配置文件agent,通用配置文件comon,监控配置文件mon
[root@master1 mysql-mmm]# vi mmm_common.conf
[root@master1 mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
[root@master1 mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
[root@master1 mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
[root@master1 mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
将这些数据传给其他3台数据库
在monitor服务器上配置80.104:
[root@monitor ~]# cd /etc/mysql-mmm/
[root@monitor mysql-mmm]# vi mmm_mon.conf
在其它mysql服务器上:
[root@master1 mysql-mmm]# vi mmm_agent.conf
[root@master2 mysql-mmm]# vi mmm_agent.conf
[root@slave1 mysql-mmm]# vi mmm_agent.conf
[root@slave2 mysql-mmm]# vi mmm_agent.conf
在四台数据库中为mmm_agent授权
grant super, replication client, process on *.* to 'mmm_agent'@'192.168.80.%' identified by '123456';
grant replication client on *.* to 'mmm_monitor'@'192.168.80.%' identified by '123456';
flush privileges;
在四台数据库中开启mysql-mmm-agent服务并设为开机自启
systemctl start mysql-mmm-agent
systemctl enable mysql-mmm-agent
在monitor服务器上配置80.105中:
[root@monitor mysql-mmm]# vi mmm_mon.conf
systemctl start mysql-mmm-monitor
//启动mysql-mmm-monitor 5台机子都要执行这条命令
[root@monitor mysql-mmm]# mmm_control checks all
将主服务器stop
service mariadb stop
//模拟宕机
在再monitor服务器上mmm_control show
在master2(db2)上查看漂移地址
验证将从服务器停止一台,另一台将接管两个虚拟IP,以保证业务不停止
[root@slave1 ~]# service mariadb stop
在monitor上面查看
[root@monitor mysql-mmm]# mmm_control show
[root@slave2 mysql-mmm]# ip add show ens33
到此mysql主主同步主从同步与MMM监控完成