<?php$get_mail_content = get_include_contents('get_top100_slowsql.php');function get_include_contents($filename) { if (is_file($filename)) { ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false;} $smtpserver = "xx.xxcom";//SMTP做事器 $smtpserverport = 587;//SMTP做事器端口 $smtpusermail = "xx.xx.xx";//SMTP做事器的用户邮箱 $smtpemailto = 'huangwbxx';//发送给谁 $smtpuser = "xunjian";//SMTP做事器的用户帐号,注:部分邮箱只需@前面的用户名 $smtppass = "xxxxx";//SMTP做事器的授权码 $mailtitle='【告警】慢查询报警推送TOP100条,请及时优化.'; $mailcontent='下面的慢查询语句或许会影响到数据库的稳定性和康健性,请您在收到此邮件后及时优化语句或代码
数据库的稳定性须要大家的共同努力,感谢您的合营!
<br><br>' .$get_mail_content .'<br><br>该邮件由slowquery系统自动发出,请勿回答,语句详细实行情形请登录<a href="http://1xx.xx.xx.xx/slowquery/slowquery.php">slowquery系统查看.<br><br>';system("./sendEmail -f $smtpusermail -t $smtpemailto -s $smtpserver:$smtpserverport -u '$mailtitle' -o message-charset=utf8 -o message-content-type=html -m '$mailcontent' -xu $smtpusermail -xp '$smtppass'");?>

2、设置定时任务

每隔3小时慢查询报警推送一次:

0 /3 cd /var/www/html/slowquery/alarm_mail;/usr/bin/php /var/www/html/slowquery/alarm_mail/sendmail.php > /dev/null 2>&1

yumphphttpd详解临盆情况应用slowquery对象设置装备摆设邮件告警 GraphQL

3、邮件内容

可以看到邮件内容如下:

常见报错

1、PHP Warning: mysqli_connect(): Headers and client library minor version mismatch. Headers:50550 Library:50637 in /var/www/html/slowquery/config.php on line 5

可以创造header version => 5.5.47-MariaDB这个是个奇葩,版本号不一样,怪不得报错了。
考虑当前安装的是php-mysql驱动,而当前的php版本比较新,于是想到这个奇葩是不是由于驱动版本较低天生的,考试测验:先卸载较低版本的php-mysql驱动,再升级安装新版的php-mysqlnd驱动。

yum remove php-mysqlyum install php-mysqlnd

重启下httpd和mysql做事:

systemctl restart httpdsystemctl restart mysqldphp -i|grep Client

版本全统一了,问题办理

2、invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415.

centos7.2默认是 perl的版本是5.16,centos6.5的是5.10,后来把7的版本换成5.10,就可以正常发邮件了。

办理:

wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gztar -zxf perl-5.10.0.tar.gzcd perl-5.10.0./configure.gnu -des -Dprefix=/usr/local/perlecho $?make && make installmv /usr/bin/perl /usr/bin/perl.bakln -s /usr/local/perl/bin/perl /usr/bin/perlperl -v

到这里关于mysql 慢查询剖析的部分就结束了,后面会更多分享一些优化和设计方面的内容,感兴趣的朋友可以关注下~