[英]How can I handle the 'max_user_connections' in mysql and php?
當我在服務器中有多個請求時會出現錯誤消息。 我的服務器托管告訴我,我的最大用戶連接數僅為 15。我該如何管理此請求並避免此錯誤。?
在 my.cnf 中:
max_connections=100
或者,如果您無法更改此文件,則必須限制 php 軟件中的連接數(如果您使用的是池或類似軟件)以避免達到此限制。
根據您的環境,答案可能會有很大差異。 要點是您需要更好地管理您的連接; 記住在完成后關閉它們,並在可以時重新使用它們。 在不了解您的堆棧的情況下,我無法給您更好的建議。 您可能希望檢查是否正在打開持久連接而不是關閉它。
切換到不同的托管服務提供商/包
通過重構查詢和更改索引來提高查詢的性能
在需要運行查詢之前不要在代碼中打開數據庫連接
在不再需要數據庫連接后立即顯式關閉它們
如果您重復運行相同的查詢,請在 DBMS 之外緩存數據(與使用 DB 緩存相比,效率要低得多/需要更多的代碼)
對於仍在尋找有關此主題的最新信息的人 mysql_pconnect:此擴展在 PHP 5.5 中已棄用。 0,它在 PHP 7.0 中被刪除。 相反,應使用 MySQLi 或 PDO_MySQL 擴展。 可以嘗試在連接到 mysqli 時在主機名前加上“p:”,以利用持久性行為。
mysql_pconnect 的替代方案包括:
1) mysqli_connect() 帶 p: 主機前綴 示例:
mysqli_connect('p:192.168.x.y', 'USER', 'PWD', 'DB', 3306);
2) PDO::__construct() 使用 PDO::ATTR_PERSISTENT 作為驅動程序選項**
例子:
try {
$conn = new PDO("mysql:host=$mysql_host;dbname=$database", $mysql_user, $mysql_password, array(PDO::ATTR_PERSISTENT=>true));
} catch (PDOException $e) {
die ("<b>Cannot connect to database, check user credentials.</b>");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.