mysql_close и mysql_pconnect не работают

У меня есть этот сценарий:

[ file: config.php ]
$conn=mysql_connect(...
mysql_select_db

[ file: function.php ]
include('db.php');
function a()
{
mysql_query("INSERT INTO...");
}

[ file: index.php ]
include('function.php');
a();
mysql_close($conn);

в файле config.php у меня есть функции mysql_connect и mysql_select_db, в файле function.php у меня очень длинная функция, в файле «index.php» я вызываю эту функцию (которая выполняет запрос INSERT) и после этого я закрыть соединение MySQL.

Кажется, что все было в порядке, но если я протестирую производительность этого скрипта с помощью ApacheBenchmark, я вижу большое количество спящих соединений, и mysql достигает предела max_user_connection:

| 20592 | admin_tracker        | localhost       | admin_tracker | Sleep   | 0    |       |                  | 0.000    |
| 20593 | admin_tracker        | localhost       | admin_tracker | Sleep   | 0    |       |                  | 0.000    |
| 20594 | admin_tracker        | localhost       | admin_tracker | Sleep   | 0    |       |                  | 0.000    |
| 20595 | admin_tracker        | localhost       | admin_tracker | Sleep   | 0    |       |                  | 0.000    |
| 20596 | admin_tracker        | localhost       | admin_tracker | Sleep   | 0    |       |                  | 0.000    |
| 20597 | admin_tracker        | localhost       | admin_tracker | Sleep   | 0    |       |                  | 0.000    |

Поэтому я использовал функцию mysql_pconnect:

** Во-первых, при подключении функция сначала пытается найти (постоянную) ссылку, которая уже открыта с тем же хостом, именем пользователя и паролем. Если он найден, его идентификатор будет возвращен вместо открытия нового соединения.

Во-вторых, соединение с сервером SQL не будет закрыто, когда выполнение скрипта закончится. Вместо этого ссылка останется открытой для будущего использования (mysql_close () не закроет ссылки, установленные mysql_pconnect ()). **

Но проблема сохраняется

[Wed Jul 27 07:12:46.153812 2016] [:error] [pid 29741] [client XX.XX.XX.XX:43853] PHP Warning:  mysql_pconnect(): Too many connections in /home/admin/web/XXXXXXXXXXX/public_html/config.php on line 2
[Wed Jul 27 07:12:46.177555 2016] [:error] [pid 29744] [client XX.XX.XX.XX:43854] PHP Warning:  mysql_pconnect(): Too many connections in /home/admin/web/XXXXXXXXXXX/public_html/config.php on line 2
[Wed Jul 27 07:12:46.202182 2016] [:error] [pid 29738] [client XX.XX.XX.XX:43851] PHP Warning:  mysql_pconnect(): Too many connections in /home/admin/web/XXXXXXXXXXX/public_html/config.php on line 2
[Wed Jul 27 07:12:46.446825 2016] [:error] [pid 29729] [client XX.XX.XX.XX:43852] PHP Warning:  mysql_pconnect(): Too many connections in /home/admin/web/XXXXXXXXXXX/public_html/config.php on line 2

Почему это происходит, если файл совпадает, а mysql_pconnect использует одного и того же пользователя / пароль / базу данных?

Как я могу решить эту проблему?
Спасибо

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]