Σφάλμα σύνδεσης με τη βάση δεδομένων στο WordPress: πώς να το διορθώσετε
Διορθώστε το σφάλμα σύνδεσης με τη βάση δεδομένων του WordPress: ελέγξτε τα τέσσερα διαπιστευτήρια στο wp-config.php, βεβαιωθείτε ότι ο διακομιστής βάσης δεδομένων λειτουργεί και επιδιορθώστε έναν κατεστραμμένο πίνακα.
Δημοσιεύτηκε
Ανοίγετε τον ιστότοπό σας και κάθε σελίδα — τόσο το δημόσιο τμήμα όσο και το wp-admin — αντικαθίσταται από μία γκρίζα πρόταση: Σφάλμα κατά την εγκαθίδρυση σύνδεσης με τη βάση δεδομένων. Τίποτα δεν εμφανίζεται, γιατί τίποτα δεν μπορεί. Το WordPress δεν έφτασε καν στο χτίσιμο μιας σελίδας.
Να το νοητικό μοντέλο που κάνει τη διόρθωση γρήγορη. Το WordPress κρατά όλο το περιεχόμενό σας — άρθρα, σελίδες, ρυθμίσεις, χρήστες — σε μια βάση δεδομένων MySQL, όχι σε αρχεία. Σε κάθε αίτημα διαβάζει τέσσερα στοιχεία σύνδεσης από το wp-config.php, συνδέεται σε αυτή τη βάση και τραβά ό,τι χρειάζεται. Αυτό το σφάλμα σημαίνει ότι η σύνδεση επιχειρήθηκε και απορρίφθηκε. Η λύση είναι να βρείτε γιατί απορρίφθηκε, και υπάρχουν μόνο τρεις πιθανότητες.
Τα τρία αίτια, κατά σειρά πιθανότητας
- Ένα λανθασμένο διαπιστευτήριο στο
wp-config.php— το συνηθισμένο αποτέλεσμα της μεταφοράς σε άλλη φιλοξενία. - Ο διακομιστής βάσης δεδομένων είναι εκτός λειτουργίας ή υπερφορτωμένος — το συνηθισμένο αποτέλεσμα του να μην αλλάξει τίποτα από την πλευρά σας.
- Η βάση δεδομένων είναι κατεστραμμένη — λιγότερο συχνό, και εκδηλώνεται διαφορετικά.
Δουλέψτε τα με αυτή τη σειρά.
Βήμα 1: ελέγξτε τα τέσσερα διαπιστευτήρια
Ανοίξτε το wp-config.php στη ρίζα του ιστότοπού σας μέσω SFTP ή του διαχειριστή αρχείων της φιλοξενίας σας. Τέσσερις γραμμές ορίζουν τη σύνδεση:
define( 'DB_NAME', 'your_database_name' );
define( 'DB_USER', 'your_database_user' );
define( 'DB_PASSWORD', 'your_database_password' );
define( 'DB_HOST', 'localhost' );
Καθεμία από αυτές πρέπει να ταιριάζει ακριβώς με ό,τι σας ανέθεσε η φιλοξενία σας. Ανοίξτε την ενότητα βάσεων δεδομένων στον πίνακα ελέγχου της φιλοξενίας σας (στο cPanel είναι το «MySQL Databases») και συγκρίνετε χαρακτήρα προς χαρακτήρα:
DB_NAME— οι εταιρείες φιλοξενίας συχνά βάζουν πρόθεμα στο όνομα με τον λογαριασμό σας, όπωςcpaneluser_wpdb. Το πρόθεμα είναι μέρος του ονόματος.DB_USER— ισχύει το ίδιο πρόθεμα, και ο χρήστης πρέπει να είναι ανατεθειμένος σε αυτή τη βάση δεδομένων, όχι απλώς να υπάρχει.DB_PASSWORD— ο πιο συχνός ένοχος. Αν δεν είστε σίγουροι, επαναφέρετέ τον στον πίνακα ελέγχου και επικολλήστε τη νέα τιμή. Προσέξτε για κενό στο τέλος ή για «έξυπνο» εισαγωγικό.DB_HOST— μην υποθέσετε ότι είναιlocalhost. Πολλές εταιρείες φιλοξενίας χρησιμοποιούν αποκλειστικό διακομιστή βάσης δεδομένων με διεύθυνση όπωςmysql.yourhost.com, μερικές φορές με:port. Ο πίνακας ελέγχου δείχνει τη σωστή τιμή.
Επειδή ακριβώς σε αυτό το αρχείο βρίσκονται αυτές οι τέσσερις τιμές, ο ασφαλέστερος τρόπος να δημιουργήσετε ξανά ένα καθαρό wp-config.php με σωστά εισαγωγικά είναι η γεννήτρια wp-config.php — συμπληρώστε τα τέσσερα πεδία της βάσης δεδομένων και επικολλήστε το αποτέλεσμα πάνω από το παλιό μπλοκ.
Αυτό το βήμα από μόνο του διορθώνει το σφάλμα σχεδόν μετά από κάθε μεταφορά, επειδή διαπιστευτήρια που ήταν σωστά στην παλιά φιλοξενία είναι λάθος στη νέα.
Βήμα 2: επιβεβαιώστε ότι ο διακομιστής βάσης δεδομένων όντως λειτουργεί
Αν τα διαπιστευτήρια είναι σωστά και το σφάλμα επιμένει — ειδικά αν εμφανίστηκε μόνο του χωρίς καμία αλλαγή από εσάς — ύποπτος είναι ο ίδιος ο διακομιστής βάσης δεδομένων.
Στη διαμοιραζόμενη φιλοξενία αυτό είναι συνηθισμένο και συνήθως προσωρινό: η υπηρεσία MySQL κατακλύζεται κατά τη διάρκεια μιας αιχμής επισκεψιμότητας ή φτάνει στο όριο συνδέσεων ανά λογαριασμό και αρχίζει να αρνείται νέες συνδέσεις. Τυπικά αποκαθίσταται μέσα σε λίγα λεπτά. Πριν κάνετε κάτι δραστικό, περιμένετε λίγο και ξαναφορτώστε.
Για να ελέγξετε αν τα διαπιστευτήρια είναι καν έγκυρα, ανεξάρτητα από το WordPress, τοποθετήστε ένα μικροσκοπικό σενάριο δίπλα στο wp-config.php:
<?php
$link = mysqli_connect('localhost', 'your_database_user', 'your_database_password');
if (!$link) {
die('Connection failed: ' . mysqli_connect_error());
}
echo 'Connected — the server and credentials are fine.';
Χρησιμοποιήστε τα πραγματικά σας DB_HOST, DB_USER και DB_PASSWORD. Αν εμφανίσει Connected, τα στοιχεία σύνδεσής σας λειτουργούν και το πρόβλημα είναι αλλού (μια κατεστραμμένη βάση δεδομένων, Βήμα 3). Αν εμφανίσει σφάλμα σύνδεσης, το μήνυμα σας λέει ποιο: «Access denied» σημαίνει λάθος χρήστη ή κωδικό· «Can’t connect to MySQL server» σημαίνει λάθος διακομιστή ή πραγματικά εκτός λειτουργίας υπηρεσία — ώρα να επικοινωνήσετε με τη φιλοξενία σας. Διαγράψτε το σενάριο τη στιγμή που θα τελειώσετε.
Βήμα 3: επιδιορθώστε μια κατεστραμμένη βάση δεδομένων
Ένα σημάδι ξεχωρίζει τη φθορά από ένα πρόβλημα σύνδεσης: το δημόσιο τμήμα φορτώνει αλλά το wp-admin δείχνει το σφάλμα, ή το αντίστροφο. Αν η σύνδεση όντως απορριπτόταν, θα ήταν νεκρά και τα δύο. Ένας τέτοιος διαχωρισμός δείχνει κατεστραμμένους πίνακες.
Το WordPress έχει ενσωματωμένο εργαλείο επιδιόρθωσης. Προσθέστε μία γραμμή στο wp-config.php, πάνω από το σχόλιο που λέει να σταματήσετε την επεξεργασία:
define( 'WP_ALLOW_REPAIR', true );
Στη συνέχεια επισκεφθείτε αυτό το URL απευθείας στο πρόγραμμα περιήγησής σας:
https://yoursite.com/wp-admin/maint/repair.php
Φορτώνει χωρίς σύνδεση — αυτό είναι το ζητούμενο, αφού μπορεί να έχετε κλειδωθεί έξω — και προσφέρει «Επιδιόρθωση βάσης δεδομένων» και «Επιδιόρθωση και βελτιστοποίηση βάσης δεδομένων». Εκτελέστε την.
Έπειτα διαγράψτε αμέσως αυτή τη γραμμή από το wp-config.php. Όσο υπάρχει, οποιοσδήποτε στο διαδίκτυο μπορεί να ανοίξει αυτό το URL και να εκτελέσει επιδιόρθωση στη βάση δεδομένων σας. Δεν είναι προαιρετική εκκαθάριση· είναι το κλείσιμο μιας τρύπας που μόλις ανοίξατε.
Βήμα 4: όταν η επιδιόρθωση ούτε καν συνδέεται
Αν η ίδια η σελίδα επιδιόρθωσης δείχνει το σφάλμα σύνδεσης, δεν υπάρχει τίποτα να επιδιορθωθεί — η βάση δεδομένων δεν είναι προσβάσιμη καθόλου, οπότε επιστρέφετε στο Βήμα 1 ή στο Βήμα 2. Σε αυτό το σημείο η αξιόπιστη κίνηση είναι να επαναφέρετε τη βάση δεδομένων από το πιο πρόσφατο αντίγραφο ασφαλείας της φιλοξενίας σας. Οι περισσότεροι πίνακες ελέγχου κρατούν αυτόματα καθημερινά στιγμιότυπα της βάσης δεδομένων· μια επαναφορά από χθες το βράδυ είναι σχεδόν πάντα ταχύτερη και ασφαλέστερη από το να κυνηγάτε μια φθορά στην οποία δεν μπορείτε να συνδεθείτε.
Συμβουλές που μπορείτε άφοβα να αγνοήσετε
«Απλώς επανεγκαταστήστε το WordPress». Αυτό το σφάλμα αφορά τη σύνδεση με τη βάση δεδομένων, όχι τα αρχεία του πυρήνα. Η επανεγκατάσταση αντικαθιστά ακριβώς τα αρχεία που λειτουργούν μια χαρά και δεν αγγίζει τίποτα από όσα είναι χαλασμένα.
«Αυξήστε το όριο μνήμης PHP». Η εξάντληση μνήμης είναι διαφορετικό σφάλμα με διαφορετικό μήνυμα. Η αύξηση του ορίου δεν κάνει τίποτα για μια απορριφθείσα σύνδεση βάσης δεδομένων και απλώς κρύβει ότι ποτέ δεν ελέγξατε τα διαπιστευτήρια.
«Καθαρίστε την προσωρινή μνήμη». Η αποτυχία συμβαίνει στην PHP προτού προλάβει οποιαδήποτε προσωρινή μνήμη να σερβίρει σελίδα. Ο καθαρισμός της προσωρινής μνήμης δεν αλλάζει τίποτα όσο η σύνδεση απορρίπτεται· αξίζει να γίνει μόνο αφού ο ιστότοπος επανέλθει.
«Επεξεργαστείτε τη βάση δεδομένων απευθείας για να το διορθώσετε». Το να καταφύγετε στο phpMyAdmin για να επεξεργαστείτε πίνακες με το χέρι προτού επιβεβαιώσετε ότι η σύνδεση καν λειτουργεί είναι ο τρόπος με τον οποίο μια προσωρινή διακοπή γίνεται μόνιμη απώλεια δεδομένων. Επιβεβαιώστε πρώτα τη σύνδεση· αγγίξτε τα δεδομένα τελευταία, και μόνο από ένα αντίγραφο ασφαλείας.
Ακόμα κολλημένοι;
Αν τα διαπιστευτήρια επιβεβαιώνονται με το σενάριο ελέγχου, ο διακομιστής λειτουργεί και η επιδιόρθωση συνδέεται και δεν αναφέρει σφάλματα, αλλά ο ιστότοπος εξακολουθεί να δείχνει το μήνυμα, ο εναπομείνας ύποπτος είναι ένα πρόσθετο που μιλά στη βάση δεδομένων μέσω της δικής του σύνδεσης — ένα πρόσθετο προσωρινής μνήμης ή βάσης δεδομένων που αποθήκευσε μια παρωχημένη διεύθυνση διακομιστή. Μετονομάστε το wp-content/plugins σε plugins-off μέσω SFTP για να το αποκλείσετε. Αν το σφάλμα φύγει, επαναφέρετε τα πρόσθετα ένα-ένα μέχρι να επιστρέψει.
FAQ
Ερωτήσεις
Τι σημαίνει το σφάλμα σύνδεσης με τη βάση δεδομένων στο WordPress;
Σημαίνει ότι το WordPress φορτώθηκε, διάβασε το wp-config.php, προσπάθησε να συνδεθεί στη βάση δεδομένων MySQL με τα διαπιστευτήρια που βρήκε εκεί και έλαβε άρνηση. Η αποτυχία συμβαίνει προτού χτιστεί οποιαδήποτε σελίδα, γι' αυτό όλος ο ιστότοπος γίνεται μία κενή γραμμή κειμένου. Είτε κάποιο διαπιστευτήριο είναι λάθος, είτε ο διακομιστής βάσης δεδομένων είναι εκτός λειτουργίας ή υπερφορτωμένος, είτε η ίδια η βάση δεδομένων είναι κατεστραμμένη.
Σε ποιο αρχείο βρίσκονται τα στοιχεία σύνδεσης της βάσης δεδομένων του WordPress;
Στο wp-config.php, στη ρίζα του ιστότοπού σας δίπλα στο wp-load.php. Τη σύνδεση την ορίζουν τέσσερις σταθερές: DB_NAME, DB_USER, DB_PASSWORD και DB_HOST. Ένας μόνο λανθασμένος χαρακτήρας σε οποιαδήποτε από αυτές παράγει ακριβώς αυτό το σφάλμα, και οι μεταφορές σε άλλον διακομιστή είναι ο πιο συνηθισμένος τρόπος να παλιώσουν.
Γιατί εμφανίστηκε το σφάλμα ενώ δεν άλλαξα τίποτα;
Σχεδόν πάντα φταίει ο διακομιστής βάσης δεδομένων, όχι ο ιστότοπός σας. Στη διαμοιραζόμενη φιλοξενία η υπηρεσία MySQL υπερφορτώνεται ή φτάνει στο όριο συνδέσεων κατά τις αιχμές επισκεψιμότητας και αρνείται νέες συνδέσεις. Συνήθως αποκαθίσταται μόνη της μέσα σε λίγα λεπτά. Αν επαναλαμβάνεται, ρωτήστε τη φιλοξενία σας ή έχετε ξεπεράσει το πακέτο σας.
Είναι πάντα το DB_HOST ίσο με localhost;
Όχι, και η υπόθεση ότι είναι προκαλεί αυτό το σφάλμα μετά από πολλές μεταφορές. Πολλές εταιρείες φιλοξενίας τρέχουν τη βάση δεδομένων σε ξεχωριστό διακομιστή, οπότε το DB_HOST είναι μια διεύθυνση όπως mysql.yourhost.com ή μια IP με θύρα. Η σωστή τιμή φαίνεται στην ενότητα βάσεων δεδομένων του πίνακα ελέγχου της φιλοξενίας σας. Αντιγράψτε την ακριβώς, μαζί με το επίθεμα :port αν υπάρχει.
Πώς επιδιορθώνω μια κατεστραμμένη βάση δεδομένων WordPress;
Προσθέστε define( 'WP_ALLOW_REPAIR', true ); στο wp-config.php, μετά επισκεφθείτε το yoursite.com/wp-admin/maint/repair.php σε ένα πρόγραμμα περιήγησης και εκτελέστε την επιδιόρθωση. Δεν χρειάζεται σύνδεση — γι' αυτό ακριβώς πρέπει να διαγράψετε αυτή τη γραμμή τη στιγμή που θα τελειώσετε: όσο υπάρχει, οποιοσδήποτε μπορεί να ενεργοποιήσει μια επιδιόρθωση. Αν δεν συνδέεται καθόλου, το πρόβλημα είναι στα διαπιστευτήρια ή στον διακομιστή, όχι στη φθορά.
Γιατί μόνο το wp-admin δείχνει το σφάλμα ενώ το δημόσιο τμήμα φορτώνει;
Αυτός ο διαχωρισμός δείχνει κατεστραμμένη βάση δεδομένων και όχι πρόβλημα σύνδεσης, επειδή η σύνδεση προφανώς λειτουργεί για το δημόσιο τμήμα. Το WordPress ορισμένες φορές επισημαίνει την πλευρά διαχείρισης ξεχωριστά. Εκτελέστε πρώτα την ενσωματωμένη επιδιόρθωση βάσης δεδομένων· αν δεν το λύσει, επαναφέρετε τη βάση δεδομένων από το πιο πρόσφατο αντίγραφο ασφαλείας της φιλοξενίας σας.