我正在使用Zend Freamwork爲我的網站。有時我從我的網站出現以下情況例外:MySQL:用戶some_user_name已經有超過'max_user_connections'活動連接
消息:SQLSTATE [42000] [1203]用戶elibrary_books已經有超過 'MAX_USER_CONNECTIONS' 活動連接
據我所知 「的Zend Freamwork」使用PDO連接到數據庫。 我該如何解決這個問題?
我正在使用Zend Freamwork爲我的網站。有時我從我的網站出現以下情況例外:MySQL:用戶some_user_name已經有超過'max_user_connections'活動連接
消息:SQLSTATE [42000] [1203]用戶elibrary_books已經有超過 'MAX_USER_CONNECTIONS' 活動連接
據我所知 「的Zend Freamwork」使用PDO連接到數據庫。 我該如何解決這個問題?
有時MySQL連接線程不會被丟棄,即使您已經徹底拆除了套接字;它仍然掛在等待它被收穫。
檢查您的設置wait_timeout
。默認值是不合理的。最佳值可能在20秒左右。如果您使用持久性連接,您可能也會希望它很低。
始終關閉您的連接。如果您使用的是Sql類,它看起來像:
$sql->getAdapter()->getDriver()->getConnection()->disconnect();
我該如何設置PDO的「wait_timeout」? – Mirodil
您可以在每次通過發出查詢打開連接時將wait_timeout設置爲會話變量: SET wait_timeout = 28800; 如果您使用的是PDO(比MySQL或MySQLi驅動程序更好的選擇),則可以在創建PDO連接對象時通過設置PDO :: MYSQL_ATTR_INIT_COMMAND驅動程序選項來發出上述語句。 – Koba
我會試試看。謝謝 – Mirodil