Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Πώς να σκοτώσει Sleeping MySQL Συνδέσεις

MySQL είναι ένα πρόγραμμα βάσης δεδομένων ανοικτού κώδικα με σκοπό να τρέξει σε πολλαπλές πλατφόρμες . Κάθε βάση δεδομένων μπορεί να έχει πολλαπλές εισερχόμενες συνδέσεις . Όταν ένα πρόγραμμα ή χρήστης συνδέεται σε μια γραμμή ή πίνακα στη βάση δεδομένων , τα δεδομένα που έχει πρόσβαση είναι κλειδωμένη. Αυτό σημαίνει ότι ένας άλλος χρήστης ή πρόγραμμα δεν μπορεί να έχει πρόσβαση στα ίδια δεδομένα ταυτόχρονα . Τα προγράμματα σχεδιάζονται για την προσωρινή αποθήκευση των δεδομένων για να αποφύγουμε τον εγκλωβισμό των πόρων της βάσης δεδομένων . Ωστόσο , ένα σενάριο μπορεί να χρησιμοποιηθεί για να σκοτώσει ένα "κοιμάται ", ή αδράνεια , σύνδεση όπως είναι απαραίτητο . Οδηγίες
Η

1 Ανοίξτε το MySQL γραμμής εντολών ως χρήστης με δικαιώματα διαχειριστή . Στα Windows , κάντε κλικ στο μενού " Έναρξη " και πληκτρολογήστε " cmd.exe " στο πεδίο "Αναζήτηση" , στη συνέχεια πιέστε το πλήκτρο " Enter". Σε συστήματα Linux /Unix , ανοίγει ένα νέο παράθυρο " Terminal" και πληκτρολογήστε " su " για να αποκτήσετε πρόσβαση στο λογαριασμό του root. 2

Τύπος " mysql " για να ανοίξετε τη γραμμή εντολών της MySQL .

με 3

πληκτρολογήστε τον ακόλουθο κώδικα και πατήστε "Enter " για να εισάγετε επιπρόσθετες γραμμές και να δημιουργήσει μια διαδικασία :

DELIMITER % %

Αυτό σας επιτρέπει να εισάγετε το κείμενο για το . νέο σενάριο ή διαδικασία MySQL
Η

4 Πληκτρολογήστε τις ακόλουθες γραμμές , πιέζοντας το πλήκτρο "Enter" μετά από κάθε γραμμή :

ΔΗΜΙΟΥΡΓΙΑ ΔΙΑΔΙΚΑΣΙΑ ` killsleepingconnections ` ( )

ΣΧΟΛΙΟ « Script για να σκοτώσει τον ύπνο συνδέσεις »

ΔΙΑΒΑΖΕΙ SQL DATA

οι γραμμές αυτές το όνομα του διαδικασία » killsleepingconnections " και πληκτρολογήστε μια περιγραφή για αυτό. Μπορείτε να αντικαταστήσετε το όνομα της διαδικασίας με ένα άλλο όνομα , αν προτιμάτε
5

Πληκτρολογήστε τις ακόλουθες γραμμές , πιέζοντας το πλήκτρο "Enter" μετά από κάθε γραμμή : .

BEGIN

ΔΗΛΩΝΟΥΝ end_rows BOOLEAN ?

ΔΗΛΩΝΟΥΝ no_loops INT DEFAULT 0 ?

ΔΗΛΩΝΟΥΝ rownum INT DEFAULT 0 ? .

Αυτός ο κώδικας ξεκινά το σενάριο και δηλώνει μεταβλητές να συνεργαστεί με τη σύνδεση

6

Πληκτρολογήστε τις ακόλουθες γραμμές , πιέζοντας το πλήκτρο "Enter" μετά από κάθε γραμμή :

ΔΗΛΩΝΟΥΝ CURSOR τρέχουσα ΓΙΑ

SELECT ID

ΑΠΟ information_schema.PROCESSLIST PL

WHERE PL.COMMAND = « Sleep » ΚΑΙ PL.TIME > 120 ?

ΔΗΛΩΝΩ ΣΥΝΕΧΕΙΑ ΓΙΑ HANDLER ΔΕΝ ΒΡΕΘΗΚΕ

end_rows SET = TRUE ?

Αυτές οι γραμμές φέρω την πρώτη σύνδεση στη βάση δεδομένων που έχει μείνει αδρανής για 120 δευτερόλεπτα ή περισσότερο . Μπορείτε να επαναπροσδιορίσεις την περίοδο του ύπνου , όπως απαιτείται , απλά αντικαθιστώντας τη λέξη « 120 » με τον αριθμό των δευτερολέπτων που θέλετε να επιτρέψετε
Η 7

Πληκτρολογήστε τις ακόλουθες γραμμές , πιέζοντας το πλήκτρο "Enter" μετά από κάθε γραμμή : .

OPEN ucur ?

επιλέξτε FOUND_ROWS ( ) σε rownum ?

βρόχο : lOOP

ΑΝ end_rows ΤΟΤΕ

ΚΛΕΙΣΙΜΟ ucur ?

βρόχο ΑΔΕΙΑ ?

END IF ?

ΤΕΛΟΣ % %

DELIMITER ?

Αυτές οι γραμμές κλείσετε τη σύνδεση και το τέλος του ορισμού διαδικασίας . Η νέα διαδικασία μπορεί να κληθεί από το περιβάλλον γραμμής εντολών MySQL ή από το γραφικό πρόγραμμα διαχείρισης , χρησιμοποιώντας το όνομα που ορίζεται στην αρχή της διαδικασίας .
8

Πληκτρολογήστε το παρακάτω, για να καλέσετε τη διαδικασία από την MySQL διεπαφή γραμμής εντολών :

καλέσετε killsleepingconnections ( )

Αυτό θα απαιτήσει τη διαδικασία δημιουργήσατε στα προηγούμενα βήματα και να κλείσει οποιεσδήποτε συνδέσεις που έχουν κοιμηθεί περισσότερο από δύο λεπτά . Η διαδικασία είναι μόνιμα αποθηκεύονται στο διακομιστή MySQL και μπορεί να κληθεί οποιαδήποτε στιγμή .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα