mysql 邮件报警_安装部署mysql主从复制环境-检测主从服务并邮件报警

本文详细介绍了在CentOS7环境下,如何配置MySQL主从复制,包括关闭防火墙和SELinux,修改配置文件,创建数据库和用户,设置主从复制,并提供了监控脚本以确保主从服务的稳定运行。此外,还讲解了如何通过邮件报警功能发送服务状态信息。
摘要由CSDN通过智能技术生成

安装部署mysql主从复制环境

实验环境:centos7

实验机器:2台

主数据库:11.11.11.24

从数据库:11.11.11.26

主从复制的准备操作

安装部署两台或多台mysql数据库

yum -y install mariadb mariadb-server

关闭防火墙和selinux

systemctl stop firewalld.service #关闭防火墙

setenforce0 #临时关闭selinux

查看mysql的版本信息

[root@localhost ~]# mysql -V

mysql Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1

启动mysql服务,查看系统中是否存在mysql进程,并查看mysql的端口号

[root@localhost ~]# systemctl start mariadb.service

[root@localhost ~]# ss -anp |grepmysql

u_str LISTEN0 50 /var/lib/mysql/mysql.sock 44299 * 0 users:(("mysqld",pid=3112,fd=15))

tcp LISTEN0 50 *:3306 *:* users:(("mysqld",pid=3112,fd=14))

#ss命令可以用来获取socket统计信息,能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效

修改mysql配置文件

# 以下操作在主服务器上

修改配置mysql的主配置文件  (主数据库)

1.mysql主配置文件路径

vim /etc/my.cnf

2.配置文件内添加以下内容

server-id=1# 主数据库id为1 主从值不得相同

log_bin=mysql-bin # 开启二进制日志

:wq #保存退出

3.重启mysql服务

[root@localhost ~]# systemctl restart mariadb.service

查看mysql二进制日志信息

# 进入mysql

mysql-uroot # 原始情况下mysql中root默认的密码为空

执行的命令;

show master status;

在mysql中新建数据库;create databasename;

在mysql中新建用户并授权grant all on *.* to 'sjl'@'%' identified by '123';

解释:   在master的数据库服务器中建立一个复制的账户,每个slave使用该账户链接master来进行复制,设置所有权限(根据具体情况自定)。

上面创建了一个sjl用户,密码是123。只允许在所有段的ip地址的登录。

修改配置mysql的主配置文件  (从数据库)

1. mysql主配置文件路径

vim /etc/my.cnf

2.配置文件内添加以下内容

server-id=2# 主数据库id为1 主从值不得相同

relay_log=relay-logs # 开启中继日志,可以自定义目录,mysql用户有权限即可

:wq #保存退出

3.重启mysql服务

[root@localhost ~]# systemctl restart mariadb.service

# 以下内容在数据库内操作

查看中继日志的启动状态

show global variables like '%relay%';

连接master服务器

MariaDB [(none)]>change master to-> master_host='11.11.11.24',-> master_user='sjl',-> master_password='123',-> master_log_file='mysql-bin.000001',-> master_log_pos=245;

选项解释:

master_host:master 服务器IP

master_user:master 服务器授权用户,也就是 Master 前面创建的那个用户

master_password:master 服务器授权用户对应的密码

master_log_file:master binlog 文件名

master_log_pos:master binlog 文件中的 Postion 值

手动启动复制线程:

start slave;

mysql主从效果图

MariaDB [(none)]>show slave status G;*************************** 1. row ***************************Slave_IO_State: Connecting to master

Master_Host:11.11.11.24Master_User: sjl

Master_Port:3306Connect_Retry:60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos:245Relay_Log_File: relay-logs.000001Relay_Log_Pos:4Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: Yes

Slave_SQL_Running: Yes

两个进程都是Yes,为主从复制成功

主从服务检测脚本

前期准备工作

安装邮件报警命令 mail

yum -y install mailx

配置

vi /etc/mail.rc  在文件尾加上如下配置

set from=*****@163.com # 用那个邮箱发送

set smtp=smtp.163.com

set smtp-auth-user=*****@163.com

set smtp-auth-password=**** # 不是邮箱密码,是授权码set smtp-auth=login

测试

[root@localhost ~]# echo "MySQL"|mail -s mysql ****0@qq.com

内容 | mail -s 标题 接收邮箱

shell脚本

#!/bin/bash

# 数据库登录

mysql="mysql -uroot -p1234"

while true

do# 检测关键字

array=($($mysql -e "show slave statusG"|egrep '_Running:|Behind_Master|Last_SQL_Errno'|awk '{ print $NF }'))

# 判断关键字if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[2]}" == "0"]then# 运行正常的输出echo "MySQL 主从正常"

else# 运行失败,发送报警信息echo "MySQL 主从服务 报错 管理员及时处理"|mail -s mysql ******@qq.com

breakfi

sleep 10

done

测试脚本运行效果

4c3fc8be91b611e2bd4d2fe26319e6d0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值