Άκρη MySQL: Ο κεντρικός υπολογιστής MySQL έχει πάει μακριά ή χαμένη σύνδεση στον κεντρικό υπολογιστή κατά τη διάρκεια της αποτύπωσης ερώτησης
Ένα πολύ φοβησμένο μήνυμα λάθους MySQL κατά τη διάρκεια των ερωτήσεων είναι «κεντρικός υπολογιστής MySQL έχει πάει μακριά». Ένα εναλλακτικό μήνυμα είναι «χαμένη σύνδεση στον κεντρικό υπολογιστή κατά τη διάρκεια της ερώτησης». Αυτό είναι ένα παράξενο πρόβλημα που στενοχωρεί μια ευρεία ποικιλία του λογισμικού πέσος Φιλιππίνων που περιλαμβάνει αλλά που δεν περιορίζεται σε WordPress. Υπάρχουν διάφορες αιτίες για το. Εξετάστε τις κοινές και μερικές σπάνιες αιτίες και τι μπορείτε να κάνετε για να το καθορίσετε.
Οι περισσότερες κοινές αιτίες είναι:
1. Ο κεντρικός υπολογιστής χρονομετρημένος έξω και κλειστός η σύνδεση. Εξ ορισμού, ο κεντρικός υπολογιστής κλείνει τη σύνδεση μετά από 8 ώρες ή 28800 δευτερόλεπτα εάν τίποτα δεν έχει συμβεί. Μπορείτε να αλλάξετε τη προθεσμία με τον καθορισμό της μεταβλητής wait_timeout όταν αρχίζετε mysqld μέσω του /etc/my.cnf του κεντρικού υπολογιστή σας (σε Linux εντοπίστε το αρχείο στον κατάλογο εγκαταστάσεων στα παράθυρα) επίσης. Αυτό έχει επιπτώσεις συνήθως στις επίμονες συνδέσεις οι συνδέσεις άνοιξαν τη χρησιμοποίηση mysql_pconnect () σε πέσος Φιλιππίνων. Μπορεί επίσης να έχει επιπτώσεις στις συγκεντρωμένες συνδέσεις από λέει οποιαδήποτε δευτερεύουσα συγκέντρωση σύνδεσης κεντρικών υπολογιστών.
2. Ένας άλλος κοινός λόγος να παραληφθεί ο κεντρικός υπολογιστής MySQL έχει πάει μακριά λάθος είναι επειδή έχετε εκδώσει «έναν στενό» στη σύνδεση MySQL σας και έχετε προσπαθήσει έπειτα να τρέξετε μια ερώτηση στην κλειστή σύνδεση. Αυτό είναι ένα απλό πρόβλημα λογικής. Μοιράζεστε τη σύνδεση στα πολλαπλάσια νήματα;
3. Πήρατε ένα διάλειμμα από τη σύνδεση TCP/IP από την πλευρά πελατών. Αυτό μπορεί να συμβεί εάν έχετε χρησιμοποιήσει τις εντολές: mysql_options (…, MYSQL_OPT_READ_TIMEOUT,…) ή mysql_options (…, MYSQL_OPT_WRITE_TIMEOUT,…). Σε αυτήν την περίπτωση να αυξήσει το διάλειμμα, όπως περιγράφεται ανωτέρω, μπορεί να βοηθήσει να λύσει το πρόβλημα.
4. Έχετε αντιμετωπίσει ένα διάλειμμα από την πλευρά κεντρικών υπολογιστών και η αυτόματη επανασύνδεση στον πελάτη είναι εκτός λειτουργίας. Παρακαλώ αναφερθείτε στο άρθρο που συνδέεται ανωτέρω για τις λεπτομέρειες και τη λύση.
5. Μπορείτε επίσης να πάρετε αυτά τα λάθη εάν στέλνετε μια ερώτηση στον κεντρικό υπολογιστή που είναι ανακριβής ή πάρα πολύ μεγάλος. Εάν mysqld λαμβάνει ένα πακέτο που είναι πάρα πολύ μεγάλο ή από τη διαταγή, υποθέτει ότι κάτι έχει πάει στραβά με τον πελάτη και κλείνει τη σύνδεση. Εάν χρειάζεστε τις μεγάλες ερωτήσεις (παραδείγματος χάριν, εάν εργάζεστε με τις μεγάλες στήλες ΣΤΑΓΟΝΩΝ), μπορείτε να αυξήσετε το όριο ερώτησης με τον καθορισμό της μεταβλητής του κεντρικού υπολογιστή max_allowed_packet, η οποία έχει μια προκαθορισμένη αξία 1MB. Μπορείτε επίσης να πρέπει να αυξήσετε το μέγιστο μέγεθος πακέτων στο τέλος πελατών. Περισσότερες πληροφορίες για τον καθορισμό του μεγέθους πακέτων δίνονται στο τμήμα B.1.2.9, «πακέτο πάρα πολύ μεγάλο».
6. Ένα ΕΝΘΕΤΟ ή ΑΝΤΙΚΑΘΙΣΤΑ τη δήλωση που παρεμβάλλει πολλές σειρές μπορεί επίσης να προκαλέσει αυτά τα είδη των λαθών. Καθεμία μια από αυτές τις δηλώσεις στέλνει ένα ενιαίο αίτημα στον κεντρικό υπολογιστή ανεξάρτητα από τον αριθμό σειρών που παρεμβάλλονται κατά συνέπεια, μπορείτε συχνά να αποφύγετε το λάθος με τη μείωση του αριθμού σειρών που στέλνονται ανά ΕΝΘΕΤΟ ή ΝΑ ΑΝΤΙΚΑΤΑΣΤΗΣΕΤΕ.
7. Παίρνετε επίσης μια χαμένη σύνδεση εάν στέλνετε ένα πακέτο 16MB ή μεγαλύτερος εάν ο πελάτης σας είναι πιό μεγαλύτερος από 4.0.8 και ο κεντρικός υπολογιστής σας είναι ο 4.0.8 και ανωτέρω, ή άλλος τρόπος γύρω.
Λίγες σπάνιες αιτίες είναι:
1. Σπάνια ο διοικητής DB μπορεί να είχε σκοτώσει το τρέχοντας νήμα με μια δήλωση ΘΑΝΆΤΩΣΗΣ ή μια εντολή θανάτωσης mysqladmin.
2. Μια εφαρμογή πελατών που τρέχει σε έναν διαφορετικό οικοδεσπότη δεν έχει τα απαραίτητα προνόμια για να συνδέσει με τον κεντρικό υπολογιστή MySQL από εκείνο τον οικοδεσπότη.
3. Χρησιμοποιείτε έναν πελάτη παραθύρων και ο κεντρικός υπολογιστής είχε ρίξει τη σύνδεση (πιθανώς επειδή wait_timeout ληγμένος) πριν από την εντολή εκδόθηκε. Το πρόβλημα το στα παράθυρα είναι ότι σε μερικές περιπτώσεις MySQL δεν παίρνει ένα λάθος από το OS κατά τη γράψιμο στη σύνδεση TCP/IP στον κεντρικό υπολογιστή, αλλά αντ' αυτού παίρνει το λάθος κατά προσπάθεια να διαβαστεί η απάντηση από τη σύνδεση.
4. Πριν από MySQL της 5.0.19, ακόμα κι αν επανασυνδέστε η σημαία στη δομή MYSQL είναι ίση με 1, MySQL δεν επανασυνδέει αυτόματα και δεν επανεκδίδει την ερώτηση δεδομένου ότι δεν ξέρει εάν ο κεντρικός υπολογιστής πήρε την αρχική ερώτηση ή όχι.
5. Είναι επίσης δυνατό να δει αυτό το λάθος εάν hostname οι ματιές αποτυγχάνουν (παραδείγματος χάριν, εάν ο DNS κεντρικός υπολογιστής στον οποίο ο κεντρικός υπολογιστής ή το δίκτυό σας στηρίζεται πηγαίνει κάτω). Αυτό είναι επειδή MySQL εξαρτάται από το σύστημα οικοδεσποτών για το ψήφισμα ονόματος, αλλά δεν έχει κανέναν τρόπο εάν λειτουργεί - από την άποψη MySQL το πρόβλημα είναι όμοιο με οποιοδήποτε άλλοδήποτε διάλειμμα δικτύων.
6. Μπορείτε επίσης να δείτε τον κεντρικό υπολογιστή MySQL έχετε πάει μακριά λάθος εάν MySQL αρχίζει με - επιλογή εκσκαφέας-δικτύωσης.
7. Μπορείτε επίσης να αντιμετωπίσετε αυτό το λάθος με τις εφαρμογές που καρφώνουν τις διαδικασίες παιδιών με τη διχάλα, οι οποίες προσπαθούν να χρησιμοποιήσουν την ίδια σύνδεση στον κεντρικό υπολογιστή MySQL. Αυτό μπορεί να αποφευχθεί με τη χρησιμοποίηση μιας χωριστής σύνδεσης για κάθε διαδικασία παιδιών.
8. Ένα άλλο ζήτημα δικτύωσης που μπορεί να προκαλέσει αυτό το λάθος εμφανίζεται εάν ο λιμένας MySQL (προεπιλογή 3306) εμποδίζεται από την αντιπυρική ζώνη σας, αποτρέποντας κατά συνέπεια οποιεσδήποτε συνδέσεις καθόλου στον κεντρικό υπολογιστή MySQL.
9. Έχετε αντιμετωπίσει ένα ζωύφιο όπου ο κεντρικός υπολογιστής πέθανε εκτελώντας την ερώτηση. Πηγή
Καταβάλλει το χρόνο και την προσπάθεια να προσδιοριστούν και να λυθούν αυτά τα προβλήματα. Να μιλήσει από πείρα αυτό δεν είναι συχνά τι φαίνεται κατά πρώτο λόγο. Μην υποθέστε τίποτα, επιμελώς κανόνας έξω όλες οι δυνατότητες μέχρης ότου τον λύνετε.
_ Filed κατώτερος μηχανή αναζήτησης, βάση δεδομένων, επιχείρηση λογισμικό, τίτλος είδηση, πώς, MySQL, λογισμικό ανοιχτού κώδικα, προγραμματίζω, RDBMS |
|
RSS 2.0 |
Trackback αυτό το άρθρο |
Ηλεκτρονικό ταχυδρομείο αυτό το άρθρο
Μπορείτε επίσης να επιθυμήσετε να διαβάσετε |




































