【问题标题】:max_user_connections error with mysqlmysql的max_user_connections错误
【发布时间】: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 初始化方法之一应该这样做,您应该改用依赖注入。

标签: java mysql spring


【解决方案1】:

Denium

回答

你是如何使用这个的?您不会仅仅因为需要 JdbcTemplate 而重新创建应用程序上下文吗? BasicDataSource 的默认最大限制为 8,因此您必须重新创建一些东西...... – M. Deinum 3 小时前

感谢 Deinum。我的坏..我多次创建应用程序上下文。我已经更改了代码以仅初始化上下文一次,现在它工作正常。非常感谢您的建议 .. – Raj 3 小时前

您为什么还要手动创建它? Spring 初始化方法之一应该这样做,而您应该使用依赖注入。 – M. Deinum 3 小时前

我的程序是基于控制台的,所以需要手动创建上下文。我将上下文保持在静态字段中。正如您所指出的,问题是由于多次调用方法导致多次创建上下文。对于数据源和其他 bean,我正在使用 spring 依赖注入 .. – Raj 3 小时前

【讨论】:

    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多