На всякий случай это кому-нибудь поможет:
Я получил эту ошибку, когда открывал и закрывал соединения в функции, которая будет вызываться из нескольких частей приложения. У нас слишком много соединений, поэтому мы подумали, что было бы неплохо повторно использовать существующее соединение или выбросить его и создать новое, например:
public static function getConnection($database, $host, $user, $password)
{
if (!self::$instance) {
return self::newConnection($database, $host, $user, $password);
} elseif ($database . $host . $user != self::$connectionDetails) {
self :: $ instance-> query ('KILL CONNECTION_ID ()'); self :: $ instance = null; return self :: newConnection ($ база данных, $ хост, $ пользователь, $ пароль); } return self :: $ instance; } Оказывается, мы были слишком осторожны с убийствами, и поэтому процессы, выполняющие важные действия на старом соединении, никогда не могли закончить свой бизнес. Итак, мы отбросили эти строки
self::$instance->query('KILL CONNECTION_ID()');
self::$instance = null;
и поскольку аппаратное обеспечение и настройки машины позволяют это, мы увеличили количество разрешенных соединений на сервере, добавив
max_connections = 500
в наш файл конфигурации. Это решило нашу проблему на данный момент, и мы кое-что узнали об уничтожении соединений mysql.