需求
五台虚拟机
双网卡 第一块内网,第二块外网
80.111 主数据库1
80.112 主数据库2
80.113 从数据库1
80.114 从数据库2
80.115 监控端 monitor
systemctl stop firewolld
setenforce 0 //关闭防火墙
四台服务器安装以下程序:
yum install -y wget
yum -y install epel-release
yum clean all && yum makecache
yum -y install mariadb-server mariadb
systemctl start mariadb //启动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
如图所示
service mariadb restart //重启一下mariadb
netstat -anpt | grep 3306 //检查3306端口是否运行mysql
-------没有问题后,把配置文件复制到其它3台数据库服务器上并启动服务器-----
scp /etc/my.cnf [email protected]:/etc/my.cnf 将配置文件发送到另外三台服务器上
scp /etc/my.cnf [email protected]:/etc/my.cnf
scp /etc/my.cnf [email protected]:/etc/my,cnf
注:如果是第一次发送会出以下提示,只需输入yes 在输入root密码即可
再到另外三台服务器的vi /etc/my.cnf
此目录下修改server_id=2
分别改为2 3 4即可
mysql_secure_installation //为数据库设置安全密码
步骤为 回车 y 密码 确认密码 y n y y
另外三台也要设置
注:若未启动数据库则无法设置``
mysql -uroot -p密码 即可登陆数据库
在数据库中
grant replication slave on *.* to 'myslave'@'192.168.80.%' identified by '123'; //授权,允许80网段的来同步本台服务器的二进制文件
show master status \G //查看信息,用于提供有关从属服务器线程的关键参数的信息 这两行内容等下要用到
再另外一台主数据库中指定主数据库
以下命令末尾的两个参数就是刚刚的内容
change master to master_host='192.168.80.111',master_user='myslave',master_password='123',master_log_file='mysql_bin.000001',master_log_pos=1420;
start slave; //启动
show slave status \G //用于提供有关从属服务器线程的关键参数的信息
如果有图上的两个yes即为成功
注:如果未成功有可能是防火墙没关闭的原因,一定要检查一下万恶的防火墙
测试:
在主备服务器上创建一个空库:
MariaDB [(none)]> create database aa;
MariaDB [(none)]> show databases;
再另一台贮备服务器上show databases;
查看此时有aa库代表两台主备i服务器可以同步如下图
我们可以到另外从服务器上进行同样的操作,到此主主备份中从同步成功
下面进行mmm的操作
-------安装MMM----在所有服务器上安装-----注意,epel源要配置好
yum -y install mysql-mmm*
-------安装结束后,对mmm进行配置------
cd /etc/mysql-mmm/
ls进行查看mmm的配置文件
mmm_agent.conf //监控数据库
mmm_mon.conf //监控数据管控端
mmm_tools.conf //工具
mmm_common,conf //通用配置文件
mmm_monlog.conf //日志
更改配置
vi 到mmm_agent,conf中将最后的db更改,分别改为db1,另外三台也要改,改为db2,db3,db4即可最后一台暂时不动
再到 vi mm_common.conf中配置
cluster_interface这一行网卡改为自己的内网网卡
replication_user 改为myslave 数据库中的用户
replication_password 改为123 密码
agent_password 也改为123
下面的host配置更改里面的ip地址分别改为相对应的,由于没有db4所以要手动添加一个进行更改
将<role writer>
配置中的ip地址改为相同网段即可
将role reader中的db1,db2改为db3,db4并为db3 4分配地址
完成后保存退出
将更改后的配置发送到另外四台服务器上
scp mmm_common.conf [email protected]:/etc/mysql-mmm/
发送完成后到最后一台服务器管控端上
vi /etc/mysql-mmm/mmm_mon.conf
在ping_ips中加入前面四台服务器的ip地址以保证服务器间能相互ping同
修改密码
在四台数据库中为mmm_agent授权
grant super, replication client, process on *.* to 'mmm_agent'@'192.168.80.%' identified by '123';
为mmm_moniter授权
grant replication client on *.* to 'mmm_monitor'@'192.168.80.%' identified by '123';
授权好后刷新一下
flush privileges;
完成后开启agent服务并设置为开机自启
systemctl start mysql-mmm-agent
systemctl enable mysql-mmm-agent
在管控段上启动
systemctl start mysql-mmm-monitor
查看有没有在运行
netstat -anpt | grep 9988
mmm_control checks all
用这条命令查看各项服务是否全部成功
mmm数据库配置就完成了