April 14
MySQL è un programma di database open-source progettato per funzionare su più piattaforme. Ogni database può avere più connessioni in entrata. Quando un programma o un utente si connette a una riga o una tabella nel database, i dati che sta accedendo è bloccato. Questo significa che un altro utente o programma non può accedere agli stessi dati allo stesso tempo. I programmi sono in genere progettati per memorizzare nella cache i dati per evitare di bloccare le risorse del database. Tuttavia, uno script può essere usato per uccidere un "sonno", o di inattività, la connessione in base alle esigenze.
1 Aprire la riga di comando di MySQL come utente amministrativo. In Windows, fare clic sul menu "Start" e digitare "cmd.exe" nel campo "Cerca", quindi premere "Invio". Sui sistemi Linux / Unix, aprire una nuova finestra "Terminal" e digitare "su" per accedere all'account di root.
2 Digitare "mysql" per aprire il prompt dei comandi di MySQL.
3 Digitare il seguente codice e premere il tasto "Enter" per inserire linee aggiuntive e creare una procedura:
DELIMITER %%
Ciò consente di immettere il testo per il nuovo script o la procedura in MySQL.
4 Digitare le righe seguenti, premendo il tasto "Invio" dopo ogni riga:
CREATE PROCEDURE killsleepingconnections
()
Commento 'Script di uccidere le connessioni dormire'
Legge i dati SQL
Queste linee definiscono il nome della procedura "killsleepingconnections" e immettere una descrizione per questo. È possibile sostituire il nome della procedura con un altro nome, se si preferisce.
5 Digitare le righe seguenti, premendo il tasto "Invio" dopo ogni riga:
INIZIO
DICHIARARE end_rows BOOLEANO;
DICHIARARE no_loops INT DEFAULT 0;
DICHIARARE rownum INT DEFAULT 0;
Questo codice avvia lo script e dichiara variabili di lavorare con la connessione.
6 Digitare le righe seguenti, premendo il tasto "Invio" dopo ogni riga:
DICHIARARE cur cursore FOR
SELECT MATR
DA information_schema.PROCESSLIST PL
DOVE PL.COMMAND = 'Sleep' E PL.TIME> 120;
DICHIARARE CONTINUA gestore per NON TROVATO
end_rows SET = true;
Queste linee recuperano la prima connessione nel database che è stato inattivo per 120 secondi o più. È possibile ridefinire il periodo di sonno, se necessario, semplicemente sostituendo "120" con il numero di secondi che si desidera consentire.
7 Digitare le righe seguenti, premendo il tasto "Invio" dopo ogni riga:
Ucur APERTA;
selezionare FOUND_ROWS () in rownum;
ciclo: LOOP
SE end_rows THEN
Ucur CLOSE;
LASCIARE ciclo;
FINISCI SE;
FINE%%
DELIMITER;
Queste linee chiudere la connessione e terminare la definizione di routine. La nuova procedura può essere chiamato da l'interfaccia della riga di comando MySQL o dal programma di amministrazione grafica utilizzando il nome definito all'inizio della procedura.
8 Digitare quanto segue per richiamare la procedura dall'interfaccia MySQL a riga di comando:
chiamare killsleepingconnections ()
Questo chiamerà la procedura creato nei passaggi precedenti e chiudere tutte le connessioni che sono state dormendo più di due minuti. La procedura viene memorizzato permanentemente sul server MySQL e può essere richiamato in qualsiasi momento.