วิธีแก้ไขข้อผิดพลาดการจัดเรียง “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 username -p --status ฐานข้อมูล | 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=table_name,table_name,table_name

? แทนที่ table_name ในคำสั่งด้านบนด้วยชื่อจริงของตารางที่ใช้การเรียง “utf8mb4_0900_ai_ci”

แค่นั้นแหละ. ตอนนี้คุณสามารถนำเข้าฐานข้อมูล WordPress ของคุณไปยังเซิร์ฟเวอร์ใหม่ที่ใช้ MySQL 5.7 ได้อย่างง่ายดาย

? โน๊ตสำคัญ

สำหรับตารางฐานข้อมูลที่คุณแยกออกจากข้อมูลสำรอง ให้สร้างข้อมูลใหม่ด้วยตนเองบนเซิร์ฟเวอร์ใหม่ เนื่องจากตารางเหล่านี้เป็นของปลั๊กอินเท่านั้น ให้ตรวจสอบว่าปลั๊กอินเหล่านี้มีวิธีการส่งออกข้อมูลในการตั้งค่าปลั๊กอินหรือไม่ หรือกำหนดค่าปลั๊กอินใหม่บนเซิร์ฟเวอร์ใหม่ในลักษณะเดียวกับที่ติดตั้งบนเซิร์ฟเวอร์เก่า