Πώς να διορθώσετε το σφάλμα συλλογής "utf8mb4_0900_ai_ci" κατά την εισαγωγή της βάσης δεδομένων του WordPress

Εάν αλλάζετε την εγκατάσταση του WordPress από διακομιστή MySQL 8 σε MySQL 5.7 (ή παρακάτω), πιθανότατα θα συναντήσετε 1273 – Άγνωστη ταξινόμηση: «utf8mb4_0900_ai_ci» σφάλμα κατά την προσπάθεια εισαγωγής της βάσης δεδομένων. Ανεξάρτητα από τα εργαλεία που χρησιμοποιείτε για την εισαγωγή ή την εξαγωγή της βάσης δεδομένων, δεν μπορείτε να αποφύγετε αυτό το σφάλμα.

Ωστόσο, εάν είχατε προηγουμένως εκτελέσει το ιστολόγιό σας σε διακομιστή MySQL 5.7 και πρόσφατα αλλάξατε σε MySQL 8, αλλά τώρα επιστρέφετε στο MySQL 5.7, τότε οι βασικοί πίνακες του WordPress (αναρτήσεις, ταξινομήσεις, επιλογές, σχόλια κ.λπ.) και τυχόν πρόσθετα που εγκαταστήσατε στον διακομιστή MySQL 5.7 θα πρέπει να εξακολουθείτε να χρησιμοποιείτε τη συλλογή "utf8mb4_unicode_520_ci".

Μπορείτε να εισαγάγετε όλους τους πίνακες από τη βάση δεδομένων σας, η οποία χρησιμοποιεί τη συλλογή "utf8mb4_unicode_520_ci". Αυτό που πρέπει να κάνετε λοιπόν είναι να βρείτε τους πίνακες στη βάση δεδομένων σας που χρησιμοποιεί τη συρραφή "utf8mb4_0900_ai_ci" και να τους εξαιρέσετε από το εξαγόμενο αντίγραφο ασφαλείας της βάσης δεδομένων.

🔎 Βρείτε ποιοι πίνακες χρησιμοποιούν τη συλλογή "utf8mb4_0900_ai_ci"

Πρέπει να βρείτε ποιοι πίνακες στη βάση δεδομένων σας χρησιμοποιούν τη συρραφή "utf8mb4_0900_ai_ci", ώστε να μπορούμε να εξαιρέσουμε αυτούς τους πίνακες κατά την εξαγωγή της βάσης δεδομένων.

Εάν έχετε πρόσβαση SSH στον διακομιστή και τα διαπιστευτήρια πρόσβασης στη βάση δεδομένων (το οποίο μπορείτε να λάβετε πλήρως από το αρχείο wp-config.php), μπορείτε να εκτελέσετε την ακόλουθη εντολή για να βρείτε εύκολα τους πίνακες με συρραφή "utf8mb4_0900_ai_ci".

mysqlshow -u όνομα χρήστη -p --status database | grep "utf8mb4_0900_ai_ci"

? Αντικαταστήστε το όνομα χρήστη και βάση δεδομένων με τη βάση δεδομένων και το όνομα χρήστη σας στην παραπάνω εντολή.

Εισαγάγετε τον κωδικό πρόσβασης χρήστη της βάσης δεδομένων σας όταν σας ζητηθεί Εισάγετε τον κωδικό πρόσβασης: και θα έχετε τη λίστα των πινάκων που χρησιμοποιούν τη συλλογή "utf8mb4_0900_ai_ci" στη βάση δεδομένων σας.

Οι πίνακες που χρησιμοποιούν τη συγκρότηση «utf8mb4_0900_ai_ci» θα πρέπει να αποτελούνται μόνο από πρόσθετα που εγκαταστήσατε μετά τη μετάβαση στο MySQL 8. Σημειώστε τα ονόματα των πινάκων ώστε να μπορείτε να τα εξαιρέσετε την επόμενη φορά που θα εξαγάγετε τη βάση δεδομένων σας.

💡 Συμβουλή

Εάν δεν έχετε πρόσβαση SSH στον διακομιστή, κάντε λήψη του αρχείου βάσης δεδομένων .sql στον υπολογιστή σας και ανοίξτε το με ένα πρόγραμμα επεξεργασίας κειμένου όπως το Notepad++ και χρησιμοποιήστε τη λειτουργία αναζήτησης (Ctrl +F) για να βρείτε ποιοι πίνακες χρησιμοποιούν το "utf8mb4_0900_ai_ci" αντιπαραβολή.

Εξαγωγή βάσης δεδομένων με εξαίρεση τους πίνακες συγκρότησης "utf8mb4_0900_ai_ci"

Τώρα που έχετε τα ονόματα των πινάκων χρησιμοποιώντας τη συγκρότηση "utf8mb4_0900_ai_ci", μπορείτε να εξαγάγετε ένα νέο αρχείο αντιγράφου ασφαλείας βάσης δεδομένων που δεν περιλαμβάνει τους πίνακες "utf8mb4_0900_ai_ci", ώστε να μπορείτε να το εισαγάγετε σε μια εγκατάσταση WordPress που εκτελείται σε διακομιστή MySQL 5.7.

Υποθέτοντας ότι χρησιμοποιείτε ήδη το WP-CLI για την εξαγωγή/εισαγωγή της βάσης δεδομένων του WordPress, εκτελέστε την ακόλουθη εντολή για να εξαγάγετε τη βάση δεδομένων σας ενώ εξαιρείτε μερικούς από τους πίνακες.

εξαγωγή wp db --exclude_tables=όνομα_πίνακα,όνομα_πίνακα,όνομα_πίνακα

? Αντικαθιστώ όνομα_πίνακα στην παραπάνω εντολή με τα πραγματικά ονόματα των πινάκων που χρησιμοποιεί τη σύσταση "utf8mb4_0900_ai_ci".

Αυτό είναι. Τώρα μπορείτε εύκολα να εισαγάγετε τη βάση δεδομένων του WordPress στον νέο διακομιστή που εκτελεί το MySQL 5.7.

? Σημαντική σημείωση

Για πίνακες βάσης δεδομένων που εξαιρέσατε από το αντίγραφο ασφαλείας, φροντίστε να δημιουργήσετε ξανά μη αυτόματα τα δεδομένα τους στον νέο διακομιστή. Δεδομένου ότι αυτοί οι πίνακες είναι μόνο προσθηκών, ελέγξτε εάν αυτές οι προσθήκες προσφέρουν έναν τρόπο εξαγωγής δεδομένων στις ρυθμίσεις της προσθήκης ή αλλιώς ρυθμίστε ξανά την προσθήκη στον νέο διακομιστή με τον ίδιο τρόπο που είχε ρυθμιστεί στον παλιό διακομιστή.