หากคุณกำลังเปลี่ยนการติดตั้ง 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 ได้อย่างง่ายดาย
? โน๊ตสำคัญ
สำหรับตารางฐานข้อมูลที่คุณแยกออกจากข้อมูลสำรอง ให้สร้างข้อมูลใหม่ด้วยตนเองบนเซิร์ฟเวอร์ใหม่ เนื่องจากตารางเหล่านี้เป็นของปลั๊กอินเท่านั้น ให้ตรวจสอบว่าปลั๊กอินเหล่านี้มีวิธีการส่งออกข้อมูลในการตั้งค่าปลั๊กอินหรือไม่ หรือกำหนดค่าปลั๊กอินใหม่บนเซิร์ฟเวอร์ใหม่ในลักษณะเดียวกับที่ติดตั้งบนเซิร์ฟเวอร์เก่า