Na wszelki wypadek pomaga to każdemu:
Wystąpił ten błąd, gdy otwierałem i zamykałem połączenia w funkcji, która byłaby wywoływana z kilku części aplikacji. Otrzymaliśmy zbyt wiele połączeń, więc pomyśleliśmy, że dobrym pomysłem może być ponowne użycie istniejącego połączenia lub wyrzucenie go i utworzenie nowego takiego:
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 ($ baza danych, $ host, $ użytkownik, $ hasło); } zwróć self :: $ instance; } Cóż, okazuje się, że byliśmy zbyt dokładni w zabijaniu, więc procesy, które robią ważne rzeczy na starym połączeniu, nigdy nie zakończą swojej działalności. Więc porzuciliśmy te linie
self::$instance->query('KILL CONNECTION_ID()');
self::$instance = null;
a ponieważ pozwala na to sprzęt i konfiguracja urządzenia, zwiększyliśmy liczbę dozwolonych połączeń na serwerze poprzez dodanie
max_connections = 500
do naszego pliku konfiguracyjnego. To na razie naprawiło nasz problem i nauczyliśmy się czegoś o zabijaniu połączeń mysql.