<legend id='wc6zZ'><style id='wc6zZ'><dir id='wc6zZ'><q id='wc6zZ'></q></dir></style></legend>
    1. <i id='wc6zZ'><tr id='wc6zZ'><dt id='wc6zZ'><q id='wc6zZ'><span id='wc6zZ'><b id='wc6zZ'><form id='wc6zZ'><ins id='wc6zZ'></ins><ul id='wc6zZ'></ul><sub id='wc6zZ'></sub></form><legend id='wc6zZ'></legend><bdo id='wc6zZ'><pre id='wc6zZ'><center id='wc6zZ'></center></pre></bdo></b><th id='wc6zZ'></th></span></q></dt></tr></i><div id='wc6zZ'><tfoot id='wc6zZ'></tfoot><dl id='wc6zZ'><fieldset id='wc6zZ'></fieldset></dl></div>

        <small id='wc6zZ'></small><noframes id='wc6zZ'>

        <tfoot id='wc6zZ'></tfoot>
          <bdo id='wc6zZ'></bdo><ul id='wc6zZ'></ul>

        springboot使用alibaba的druid数据库连接池错误的问题及解决

        时间:2023-12-07
            <bdo id='vZqdZ'></bdo><ul id='vZqdZ'></ul>
            <tfoot id='vZqdZ'></tfoot>
              <tbody id='vZqdZ'></tbody>

              <i id='vZqdZ'><tr id='vZqdZ'><dt id='vZqdZ'><q id='vZqdZ'><span id='vZqdZ'><b id='vZqdZ'><form id='vZqdZ'><ins id='vZqdZ'></ins><ul id='vZqdZ'></ul><sub id='vZqdZ'></sub></form><legend id='vZqdZ'></legend><bdo id='vZqdZ'><pre id='vZqdZ'><center id='vZqdZ'></center></pre></bdo></b><th id='vZqdZ'></th></span></q></dt></tr></i><div id='vZqdZ'><tfoot id='vZqdZ'></tfoot><dl id='vZqdZ'><fieldset id='vZqdZ'></fieldset></dl></div>
              1. <small id='vZqdZ'></small><noframes id='vZqdZ'>

                <legend id='vZqdZ'><style id='vZqdZ'><dir id='vZqdZ'><q id='vZqdZ'></q></dir></style></legend>

                • 下面我来详细讲解“springboot使用alibaba的druid数据库连接池错误的问题及解决”的完整攻略。

                  问题描述

                  在使用Spring Boot项目中使用阿里巴巴的druid连接池进行数据库访问时,可能会遇到以下错误:

                  com.alibaba.druid.pool.GetConnectionTimeoutException: 
                      timeout
                  

                  该错误的原因是druid连接池中的某些配置参数设置不佳,导致获取数据库连接超时。

                  解决方案

                  我们需要修改druid连接池的配置参数。具体步骤如下:

                  第一步:添加druid依赖

                  在项目的pom.xml文件中添加druid的依赖:

                  <dependency>
                      <groupId>com.alibaba</groupId>
                      <artifactId>druid-spring-boot-starter</artifactId>
                      <version>1.2.6</version>
                  </dependency>
                  

                  第二步:添加druid的配置

                  在项目的application.ymlapplication.properties配置文件中添加druid的配置:

                  spring:
                    datasource:
                      druid:
                        url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=UTC
                        username: root
                        password: 123456
                        driver-class-name: com.mysql.cj.jdbc.Driver
                        initial-size: 5
                        min-idle: 5
                        max-active: 20
                        max-wait: 60000
                        pool-prepared-statements: true
                        max-pool-prepared-statement-per-connection-size: 20
                        validation-query: select 1
                        validation-query-timeout: 3000
                        test-while-idle: true
                        test-on-borrow: false
                        test-on-return: false
                        filters: stat,wall
                  

                  其中,initial-size表示初始连接数,min-idle表示最小的闲置连接数,max-active表示最大的活跃连接数,max-wait表示获取连接的最大等待时间(单位:毫秒),validation-query表示连接验证语句,filters表示需要开启的druid过滤器,这里开启了statwall两个过滤器。

                  第三步:排查错误并解决

                  如果在启动项目时,发现控制台出现类似以下的报错信息:

                  com.alibaba.druid.pool.GetConnectionTimeoutException: 
                      timeout
                  

                  则需要检查druid连接池的相关配置参数是否设置正确。常见的排查方法包括:

                  • 检查数据库的连接数是否达到了设置的最大连接数限制
                  • 检查是否有线程占用了连接池的连接资源,导致连接被锁住
                  • 查看数据库的连接数是否异常,比如死锁、阻塞等情况

                  根据以上排查方法,可针对具体情况进行相应的解决措施,比如调整连接池的配置参数、重新启动数据库等。

                  示例说明

                  以下是两条示例说明,以帮助更好地理解druid连接池的配置及排查错误的过程。

                  示例一

                  假设在项目中使用了druid连接池,但在启动时出现以下报错信息:

                  com.alibaba.druid.pool.GetConnectionTimeoutException: 
                      timeout
                  

                  则可能是由于druid连接池中的一些参数设置不佳,导致获取连接超时。我们可以检查以下几个方面:

                  • 检查druid连接池的参数是否正确。
                  • 检查数据库的连接数是否达到了上限。
                  • 查看数据库的连接状态是否异常,例如死锁、阻塞等情况。

                  针对上述可能的问题,我们可以进行以下解决措施:

                  • 调整druid连接池的参数,例如增加初始连接数、最小空闲连接数等。
                  • 增加数据库连接数的上限。
                  • 查看数据库的连接状态并对异常情况进行处理。

                  示例二

                  假设在使用druid连接池时,遇到以下问题:

                  • 启动时无法正常连接数据库。
                  • 在使用数据库操作时,出现了数据库连接被占用的问题。

                  则我们需要进行以下排查:

                  • 检查数据库的连接字符串是否与实际情况一致。
                  • 检查druid连接池的参数是否正确,比如最大连接数、等待时间等。
                  • 检查数据库的连接数是否达到了上限。
                  • 检查是否有线程占用了连接池的连接资源,导致连接被锁住。
                  • 查看数据库的连接状态是否异常,例如死锁、阻塞等情况。

                  针对上述可能的问题,我们可以采取以下解决措施:

                  • 调整druid连接池的参数,例如增加初始连接数、最小空闲连接数等。
                  • 增加数据库连接数的上限。
                  • 检查并终止占用连接资源的线程。
                  • 查看数据库的连接状态并对异常情况进行处理。
                  上一篇:Docker部署springboot项目到腾讯云的实现步骤 下一篇:Navicat连接MySQL8.0的正确方法(亲测有效)

                  相关文章

                    <bdo id='Xp5jy'></bdo><ul id='Xp5jy'></ul>
                • <i id='Xp5jy'><tr id='Xp5jy'><dt id='Xp5jy'><q id='Xp5jy'><span id='Xp5jy'><b id='Xp5jy'><form id='Xp5jy'><ins id='Xp5jy'></ins><ul id='Xp5jy'></ul><sub id='Xp5jy'></sub></form><legend id='Xp5jy'></legend><bdo id='Xp5jy'><pre id='Xp5jy'><center id='Xp5jy'></center></pre></bdo></b><th id='Xp5jy'></th></span></q></dt></tr></i><div id='Xp5jy'><tfoot id='Xp5jy'></tfoot><dl id='Xp5jy'><fieldset id='Xp5jy'></fieldset></dl></div>

                  <tfoot id='Xp5jy'></tfoot>

                      <small id='Xp5jy'></small><noframes id='Xp5jy'>

                      <legend id='Xp5jy'><style id='Xp5jy'><dir id='Xp5jy'><q id='Xp5jy'></q></dir></style></legend>