【发布时间】:2016-04-01 09:17:28
【问题描述】:
我正在使用以下数据源配置设置,但一段时间后,我收到“User 'username' has exceeded the 'max_user_connections' resource (current value: 10)”。 maxIdle 连接设置为 1 但我们仍然收到此错误。有人可以建议可能的根本原因吗?
注意 ==>我们没有增加当前设置为 10 的最大连接限制的选项。
更新 ==> 我的 java 程序正在使用 Spring JdbcTemplate ,能够运行前几条我的 sql 语句,但过了一段时间它给出了错误。此外,如果我将 "maxIdle" 属性值设置为 0 ,那么它可以正常工作。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://mysqlServerName:3306/mydb"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
<property name="validationQuery" value="SELECT 1" />
<property name="testOnBorrow" value="true" />
<property name="maxIdle" value="1" />
</bean>
【问题讨论】:
-
您可能想要使用
maxActive值。 -
尝试了以下但仍然得到相同的错误 -
-
你是如何使用这个的?您不会因为需要
JdbcTemplate而重新创建应用程序上下文?BasicDataSource的默认最大限制为 8,因此您必须重新创建一些东西... -
感谢 Deinum。我的坏..我多次创建应用程序上下文。我已经更改了代码以仅初始化上下文一次,现在它工作正常。非常感谢您的建议..
-
为什么还要手动创建呢? Spring 初始化方法之一应该这样做,您应该改用依赖注入。