關於TP5報錯“too many connections”問題

從字面上的意思就能看得出,是連接次數太多了…
目前我只發現有兩個原因可能導致這個問題的出現,並提供如下解決方案:

1.只針對TP5框架,具體那個版本之前不太清楚,在TP5中有個助手函數 db()。

<code>if (!function_exists('db')) {
/**
* 實例化數據庫類
* @param string $name 操作的數據表名稱(不含前綴)
* @param array|string $config 數據庫配置參數
* @param bool $force 是否強制重新連接
* @return \\think\\db\\Query
*/
function db($name = '', $config = [], $force = true)
{
return Db::connect($config, $force)->name($name);
}
}/<code>

在這個函數里註釋第三個參數是否強制重新連接,在tp5的函數中,這個默認是true,我們在這裡這個應該默認是false,否則每次用db都會去重新鏈接一次,如果查詢次數過多,就會報錯:too many connections!

2.在mysql中有個配置,max_connections,這個是最大連接數配置,默認是100,一般我們會設置成500,500-1000都可以,如果提高了依然報這個錯,那就得找其他原因了。


分享到:


相關文章: