监控mysql的show processlist脚本

脚本输出日志 

#!/bin/sh
 
username=
passwd=
host=
date=`date +%Y%m%d`
log_dir=/data/logs/process_list/

# -d 参数判断 $log_dir是否存在
if [ ! -d "$log_dir"]; then
 mkdir "$log_dir"
fi
 
# -f 参数判断 $log_dir$date.log是否存在
if [ ! -f "$log_dir$date.log" ]; then
 touch "$log_dir$date.log"
fi 
 
n=`mysqladmin processlist -u$username -p$passwd -h$host| wc -l`
date_time=`date +%Y%m%d[%H:%M:%S]`
echo "-----------------------------------------------------------------------------" >>$log_dir$date.log
echo "Time:"$date_time >>$log_dir$date.log
echo "连接数:"$n >>$log_dir$date.log
if [ "$n" -gt 10 ];then
    IFS=$'n' #
    for line in `mysqladmin processlist -u$username -p$passwd -h$host`
    do

    strB="delete"
    result=$(echo $line  | grep "${strB}")
    if [[ "$result" != "" ]]
    then
      echo $line >>$log_dir$date.log
    else
      echo "不包含"
    fi
    
    done
fi

本地不能上网,不想安装crontab,所以使用简单方式定时执行

#!/bin/bash
step=1
for ((;;))
do
    sh "上面的脚本"
sleep $step
done

参照:

https://www.jb51.net/article/100490.htm

https://www.cnblogs.com/weijiangbao/p/7862278.html

http://xuejiehome.com/blread-2008.html

### 回答1: 可以使用Java中的JDBC API来监控MySQL数据库。通过JDBC连接MySQL数据库,然后执行SQL语句,获取需要监控的信息。例如,可以执行SHOW STATUS命令来获取MySQL服务器的状态信息,包括连接数、查询数、线程数、缓存命中率等等。还可以执行SHOW PROCESSLIST命令来查看当前正在执行的SQL语句和连接信息。获取到这些信息后,可以将其记录到日志文件中,或者通过邮件、短信等方式发送给管理员。另外,还可以使用一些开源的Java监控工具,例如C3P0、Druid等,来监控MySQL数据库的连接池状态和执行情况。 ### 回答2: Java可以使用多种方式来监控MySQL数据库。 首先,可以使用JDBC(Java数据库连接) API来连接到MySQL数据库,并执行一些查询语句以获取数据库的状态信息。通过执行SHOW STATUS或SHOW VARIABLES语句,可以获取有关数据库连接数、事务数、锁状态、缓存命中率等性能指标的信息。通过定期执行这些查询,可以实时监控数据库的性能。 其次,可以使用Java的开源数据库连接池框架,如Apache Commons DBCP、HikariCP等,来管理数据库连接池。这些框架提供了一些监控功能,可以通过配置参数来启用。例如,可以设置最大活动连接数和最大空闲连接数,当连接数超过或低于阈值时,可以触发警告或记录日志。 此外,还可以使用开源的监控工具,如Cacti、Nagios、Zabbix等,来监控MySQL数据库。这些工具提供了各种监控指标和图表,可以通过配置参数和脚本来实现对数据库的监控和报警。例如,可以监控数据库的CPU和内存使用率、关键查询的响应时间以及慢查询、死锁和连接数等。 最后,可以使用Java的日志框架,如Log4j、Logback等,来记录数据库的日志信息。通过配置日志级别和输出目标,可以将关键的数据库操作和性能指标记录到日志文件中,方便后续分析和故障排查。 总之,Java可以通过JDBC API、数据库连接池框架、监控工具和日志框架等方式来监控MySQL数据库,从而实时获取数据库的状态信息和性能指标,为数据库性能优化和故障排查提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值