MySQL är en databas med öppen källkod -program utformat för att köras på flera plattformar . Varje databas kan ha flera inkommande anslutningar . När ett program eller användare ansluter till en rad eller tabell i databasen , är de uppgifter som den läser låst . Detta innebär en annan användare eller program inte kan komma åt samma data samtidigt . Program är normalt konstruerade för att cacha data för att undvika låsning databas resurser . Däremot kan ett skript kan användas för att döda en " sovande " eller inaktiv , anslutning som behövs . Instruktioner
1
Öppna MySQL kommandoraden som en administrativ användare . I Windows , klicka på "Start " -menyn och skriv " cmd.exe " i " Sök "-fältet och tryck på " Enter ". På Linux /Unix -system , öppnar en ny " Terminal " fönstret och typ " su " för att få tillgång till root-kontot .
2
Type " mysql " för att öppna MySQL kommandotolken .
Billiga 3
Skriv följande kod och tryck på " Enter " för att mata in ytterligare rader och skapa ett förfarande :
DELIMITER % %
Detta gör att du kan mata in text för . nytt skript eller förfarandet i MySQL
4
Skriv följande rader och tryck på " Enter " efter varje rad :
SKAPA FÖRFARANDE ` killsleepingconnections ` ( ) KOMMENTAR
" Script för att döda sovande anslutningar '
LÄSER SQL DATA
Dessa rader definierar namnet på proceduren " killsleepingconnections " och skriv in en beskrivning för det . Du kan byta namn på proceduren med ett annat namn om du föredrar
5
Skriv följande rader och tryck på " Enter " efter varje rad : .
BEGIN
FÖRKLARA end_rows BOOLEAN ;
FÖRKLARA no_loops INT DEFAULT 0;
FÖRKLARA rownum INT DEFAULT 0;
här koden startar manus och deklarerar variabler att arbeta med anslutningen < . br >
6
Skriv följande rader och tryck " Enter " efter varje rad :
FÖRKLARA nuvarande CURSOR för iPhonen
SELECT ID
FRÅN information_schema.PROCESSLIST PL
WHERE PL.COMMAND = ' Sleep ' OCH PL.TIME > 120 ;
FÖRKLARA FORTSÄTT hanteraren för ej hittas
end_rows
SET = TRUE ;
< p> Dessa rader hämta den första anslutningen i databasen som har varit inaktiv i 120 sekunder eller mer . Du kan omdefiniera viloperioden efter behov , bara genom att ersätta " 120 " med det antal sekunder du vill tillåta
7
Skriv följande rader och tryck på " Enter " efter varje rad : .
OPEN ucur ,
väljer FOUND_ROWS ( ) i rownum ,
loop : lOOP
IF end_rows DÅ
STÄNG ucur ;
LEDIGHET loop ,
END IF ,
END % %
DELIMITER ,
Dessa rader stänga anslutningen och avsluta proceduren definition . Det nya förfarandet kan anropas från MySQL kommandoradsgränssnitt eller från det grafiska administrationsprogrammet att använda namnet som definieras i början av förfarandet . Ringa proceduren från MySQL
8
Skriv följande kommandoradsgränssnitt :
samtal killsleepingconnections ( ) katalog
Detta kommer att kalla det förfarande skapade i föregående steg och stänga alla anslutningar som har sovit mer än två minuter . Proceduren är permanent sparas på MySQL-servern och kan när som helst kallas .