Nel caso in cui ciò aiuti chiunque:
Ho avuto questo errore quando ho aperto e chiuso le connessioni in una funzione che sarebbe stata chiamata da diverse parti dell'applicazione. Abbiamo troppe connessioni, quindi abbiamo pensato che fosse una buona idea riutilizzare la connessione esistente o buttarla via e crearne una nuova in questo modo:
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 ($ database, $ host, $ user, $ password); } return self :: $ instance; } Bene, risulta che siamo stati un po 'troppo scrupolosi con l'uccisione e quindi i processi che fanno cose importanti sulla vecchia connessione non potrebbero mai finire i loro affari. Quindi abbiamo lasciato cadere queste righe
self::$instance->query('KILL CONNECTION_ID()');
self::$instance = null;
e poiché l'hardware e l'installazione della macchina lo consentono, abbiamo aggiunto il numero di connessioni consentite sul server
max_connections = 500
al nostro file di configurazione. Questo ha risolto il nostro problema per ora e abbiamo imparato qualcosa sull'uccisione delle connessioni mysql.