Про всяк випадок, коли це допоможе комусь:
Цю помилку я отримав, коли відкривав і закривав з'єднання у функції, яку б викликали з декількох частин програми. У нас занадто багато з’єднань, тому ми думали, що може бути хорошою ідеєю повторно скористатись наявним з'єднанням або викинути його та зробити нове подібне:
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; повернути себе :: newConnection ($ база даних, $ хост, $ користувач, $ пароль); } return self :: $ instance; } Добре виявляється, ми були занадто ретельними з убивством, і тому процеси, які робили важливі речі на старій зв'язку, ніколи не могли закінчити свою справу. Тому ми відкинули ці рядки
self::$instance->query('KILL CONNECTION_ID()');
self::$instance = null;
і оскільки обладнання та налаштування машини дозволяють це, ми збільшили кількість дозволених підключень на сервері шляхом додавання
max_connections = 500
до нашого конфігураційного файла. Наразі це вирішило нашу проблему, і ми дізналися щось про вбивство mysql-зв’язків.