最近碰到报这样的错:Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: User 'comservi_webapp' has exceeded the 'max_user_connections' resource (current value: 10)是说数据库连接次数已经执行了最大连接数 看了看项目确实是这样的,在服务器有一个web项目,算一个连接;
然后在另外一个服务器上用quartz定时的调任务,这里配置了9个trigger触发器。加起来就是10。白天工作的时候,我需要查询数据,连接数据就连不上,报错。这个问题怎样解决呢?是连接池的需要配更大吗?下面是spring的配置:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">//这里配置了close,那么每次连接用完就会关闭的
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property> 
 
    <property name="url"
value="jdbc:mysql://localhost/comservi_tractor?useUnicode=true&amp;characterEncoding=iso-8859-1&amp;zeroDateTimeBehavior=convertToNull">
</property> 
<property name="username" value="root"></property>
<property name="password" value="123456"></property> 
</bean>

解决方案 »

  1.   

    补充一下,spring配置,只是举个例子;
      

  2.   

    建议调整 MySQL 配置文件中 max_user_connections 的值。
      

  3.   

    可以在Spring的配置文件applicationContext.xml中配置一下: <!--连接池中保留的最小连接数。-->
            <property name="minPoolSize">
                <value>5</value>
            </property>
     
     <!--连接池中保留的最大连接数。Default: 15 -->
            <property name="maxPoolSize">
                <value>30</value>
            </property>
      

  4.   

    destroy-method="close" 不是你说的那个意思。
    是说被IoC容器管理的数据库连接池在卸载的时候要调用close方法。你的问题不像是连接池配置问题啊。 是不是你用jdbc了结果没有关闭啊。没有关闭的话,用过的连接没有还给连接池。
      

  5.   

    这里说Default是15,那我才用了10个
      

  6.   


    我没有手动关闭,是用getHibernateTemplate()的相应方法,这都交给hibernate来做了。
      

  7.   

    quartz 的 job 也是用的 hibernateTemplate吗?
      

  8.   

    我也不知道问题在哪里,只是那天我上传新的模块,需重启tomcat服务器.启动后,导致公司后台系统不能用。就一直报Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: User 'comservi_webapp' has exceeded the 'max_user_connections' resource (current value: 10);由于公司有两个服务器,web 项目在一个服务器A上,然后其他 Quartz部分的项目就放另外一个服务器B上,我把B关了,公司后台就立马能用了。想到以后如果还有其他什么需求,需要结合quartz来做,添加trigger,那么就麻烦了。求大家帮忙指点指点。谢谢