mysql连接池druid监控配置小结

 更新时间:2025年09月05日 10:11:19   作者:abcnull  
Druid连接池提供慢SQL、连接泄漏等监控功能,适用于Java+MySQL项目,本文就来详细的介绍一下mysql连接池druid监控配置,感兴趣的可以了解一下

前置

连接池有很多类型,比如 c3p0,比如 hikariCP,比如 druid。c3p0 一些历史项目可能用的比较多,hikariCP 需要高性能的项目比较多,druid 性能也很好,而且还提供连接池的监控面板

现在你使用 java,使用 mysql,配置好了基本的 mysql 数据库的驱动配置,配置好了 druid 连接池基本内容

你想要监控 mysql 连接池的慢 sql 情况,连接泄漏等详细情况,可以考虑使用 druid 提供的监控能力

模块功能描述
数据源查看数据库连接池的状态(活跃连接数、空闲连接数、连接等待时间等)。
SQL 监控显示 SQL 执行次数、总耗时、慢查询(默认慢查询阈值为 1000ms)。
Session 统计监控用户的会话信息(如最大并发连接数、会话超时时间等)。
Web 统计查看 HTTP 请求的统计信息(如请求次数、平均响应时间、失败次数等)。
系统信息显示 JVM 内存、线程、GC 状态等系统级监控数据。

依赖

如果你配置了 druid 的一些基本连接池的内容,这里不赘述,那么你肯定引入了 druid 的依赖了

启用配置

Springboot 配置
如果你是 Springboot 项目,在 application.yml 中配置即可

其中 stat-view-servlet 表示承接 /druid/ 请求的 servlet,web-stat-filter 表示滤过哪些请求以及排查哪些请求

spring:
  datasource:
    druid:
      # 启用监控页面
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username: admin       # 登录用户名
        login-password: admin123    # 登录密码
        reset-enable: false         # 是否允许重置数据(生产环境建议关闭)
      web-stat-filter:
        enabled: true
        url-pattern: /*             # 监控所有请求
        exclusions: "*.js,*.css,/druid/*"  # 排除静态资源

只用了 mybatis 没用 spring
如果你不是 springboot 项目,你只用了 mybatis:
mybatis-config.xml 中配置好 druid 连接池的基本连接信息后,多配置上:

<property name="filters" value="stat,wall" /> <!-- 启用监控和防御SQL注入 -->

然后你的项目还是老的 WEB-INF 项目,其中有 web.xml 文件,那么其中要配置 servlet 和 filter

<!-- Druid 监控 Servlet -->
    <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
        <init-param>
            <param-name>loginUsername</param-name>
            <param-value>admin</param-value> <!-- 登录用户名 -->
        </init-param>
        <init-param>
            <param-name>loginPassword</param-name>
            <param-value>admin123</param-value> <!-- 登录密码 -->
        </init-param>
        <init-param> <!-- 允许访问的IP(可选) -->
            <param-name>allow</param-name>
            <param-value>127.0.0.1</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

    <!-- Druid Web 监控 Filter -->
    <filter>
        <filter-name>DruidWebStatFilter</filter-name>
        <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
        <init-param>
            <param-name>exclusions</param-name>
            <param-value>*.js,*.css,/druid/*</param-value> <!-- 排除静态资源 -->
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>DruidWebStatFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

然后如果项目使用 Servlet 3.0+ 并支持注解,可以通过 Java 配置类注册来代替上方的在 web.xml 中的配置:你可以写一个 DruidWebConfig 类来继承 ServletContextListener,再重写其中 contextInitialized 方法,其中你可以注册 StatViewServlet 和 WebStatFilter,然后再 web.xml 配置一个监听即可

<listener>
    <listener-class>com.test.config.DruidWebConfig</listener-class>
</listener>

访问监控

你本地启动项目的话,你可以浏览器访问:

http://localhost:8080/druid

如果你设置了 your-app-context(Web 应用部署到服务器上的应用上下文路径),则你需要访问

http://localhost:8080/your-app-context/druid

一些问题

页面 404:一般是 stat-view-servlet 或者 web-stat-filter 没配置对,一些常见的比如其他 filter 把这个请求拦截了

到此这篇关于mysql连接池druid监控配置小结的文章就介绍到这了,更多相关mysql连接池druid监控配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MYSQL IN 与 EXISTS 的优化示例介绍

    MYSQL IN 与 EXISTS 的优化示例介绍

    当B表的数据集必须小于A表的数据集时,用in优于exists,当A表的数据集系小于B表的数据集时,用exists优于in
    2014-08-08
  • php 不能连接数据库 php error Can''t connect to local MySQL server

    php 不能连接数据库 php error Can''t connect to local MySQL server

    php 不能连接数据库 php error Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    2011-05-05
  • mysql查询锁表方式

    mysql查询锁表方式

    在MySQL中,查询锁表可以通过多个命令实现,如show engine innodb status、show processlist等,用以检测和解决表锁问题,首先通过show engine innodb status查看锁表情况,接着利用show processlist找出长时间占用的SQL语句
    2024-09-09
  • 深入mysql慢查询设置的详解

    深入mysql慢查询设置的详解

    本篇文章是对mysql慢查询设置进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql多表联合查询操作实例分析

    mysql多表联合查询操作实例分析

    这篇文章主要介绍了mysql多表联合查询操作,结合实例形式分析了mysql多表联合查询的语法、功能、相关操作技巧与注意事项,需要的朋友可以参考下
    2019-04-04
  • windows下MySQL 5.7.3.0安装配置图解教程(安装版)

    windows下MySQL 5.7.3.0安装配置图解教程(安装版)

    这篇文章主要介绍了windows下MySQL 5.7.3.0安装配置图解教程(安装版),需要的朋友可以参考下
    2016-04-04
  • MySQL使用命令行备份数据的方法详解

    MySQL使用命令行备份数据的方法详解

    由于长期使用测试环境的数据库,时不时会有脏数据删除不干净,对此很需要一个实时将生产库的数据定期备份一份,防止生产库中会有脏数据进来,所以本文给大家介绍了MySQL使用命令行备份数据的方法,需要的朋友可以参考下
    2024-02-02
  • MySQL关于ERROR 1290 (HY000)报错解决方法

    MySQL关于ERROR 1290 (HY000)报错解决方法

    在本篇文章里小编给大家整理的是关于MySQL关于ERROR 1290 (HY000)报错的解决方法,有兴趣的朋友们可以参考下。
    2019-09-09
  • MySQL修改密码不成功(无效)的解决方案

    MySQL修改密码不成功(无效)的解决方案

    这篇文章主要介绍了MySQL修改密码不成功(无效)的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 详解MySQL批量入库的几种方式

    详解MySQL批量入库的几种方式

    本文主要介绍了详解MySQL批量入库的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论