【问题标题】:MySQL: User some_user_name already has more than 'max_user_connections' active connectionsMySQL:用户 some_user_name 已经有超过 'max_user_connections' 的活动连接
【发布时间】:2011-10-13 10:08:27
【问题描述】:

我正在为我的网站使用 Zend Freamwork。有时我会从我的网站上得到以下异常:

消息:SQLSTATE[42000] [1203] 用户 elibrary_books 已经有超过 'max_user_connections' 个活动连接

据我所知,“Zend Freamwork”使用 PDO 连接到数据库。 我该如何解决这个问题?

【问题讨论】:

    标签: php mysql zend-framework


    【解决方案1】:

    始终关闭您的连接。如果您使用的是 Sql 类,它看起来像:

    $sql->getAdapter()->getDriver()->getConnection()->disconnect();
    

    【讨论】:

      【解决方案2】:

      有时即使你已经彻底拆除了套接字,MySQL 连接线程也不会被丢弃;它仍然在等待收获。

      检查wait_timeout 的设置。默认值过长。最佳值可能是 20 秒左右。如果您使用持久连接,您可能还希望它这么低。

      【讨论】:

      • 如何为 PDO 设置“wait_timeout”?
      • 您可以在每次打开连接时通过发出查询将 wait_timeout 设置为会话变量:SET wait_timeout=28800;如果您使用 PDO(比 MySQL 或 MySQLi 驱动程序更好的选择),您可以通过在创建 PDO 连接对象时设置 PDO::MYSQL_ATTR_INIT_COMMAND 驱动程序选项来发出上述语句。
      【解决方案3】:

      尝试将数据库驱动配置中的持久化标志设置为 false:

      resources.db.params.persistent = 0
      

      【讨论】:

      • 这并没有帮助我收到同样的信息。
      猜你喜欢
      • 2012-07-01
      • 2014-06-14
      • 2017-12-21
      • 1970-01-01
      • 2014-05-20
      • 2016-08-01
      • 2020-12-21
      • 1970-01-01
      相关资源
      最近更新 更多