วิธี Dump MySQL 5.0 ไปยัง 4.0

เผอิญเจอปัญหานิดหน่อยกับ mysql 5.0 เลยมีความจำเป็นต้อง downgrade ลงมาเป็น mysql 4.0
จะต้อง dump & restore db ทั้งหมดกลับมาเป็น mysql 4.0
แล้ว compatible flag = mysql40 มันไม่ค่อย work
ตารางมีปัญหาเยอะมาก auto_increment ชอบหายไปอยู่เรื่อยเลย

ก็เลยอ่าน docs ของ mysqldump แล้วเจอของดีเข้าให้

เงื่อนไขการทำนะครับ มีแค่ว่าต้อง exec mysqldump ได้

คำสั่ง (ยาวนิดนึง แต่ชัวร์ครับ)

mysqldump --allow-keywords --add-drop-table --compatible=no_key_options,no_table_options --no-set-names --lock-tables --skip-set-charset --skip-disable-keys --skip-add-locks -u USERNAME -p DATABASE> queries.sql

หลังจากนั้น แฟ้ม queries.sql ที่ได้
ให้ลอง search คำว่า collate กับ character set
ที่อยู่ในกรอบคำสั่งของ create table
แล้วก็ลบทิ้งให้หมด

จากนั้นก็ dump เข้า mysql ได้ตามปกติครับ

ปัญหาที่เจอ

  1. มี duplicate key (มาจากไหนก็ไม่รู้) ซึ่งตอน dump แนะนำให้ใส่ parameter --force เข้าไปด้วยจะช่วยได้ เพราะมันเกิดจากต้นฉบับ (check แล้ว ต้นฉบับ key ซ้ำจริงๆ)
  2. ปัญหาจาก table field ประเภท timestamp ครับ ที่จะมีปัญหาเรื่อง default value
  3. utf8 มีปัญหา กลายเป็น ??? เพียบเลย T_T ตรงนั้นต้อง dump แยกตารางเลยโดยเซต default character set ของ client ไป

หมดและ

ได้ความรู้ใหม่เกี่ยวกับ mysql 5 เพิ่มอีกแระว่ามันยังไม่เสถียรพอสำหรับ Plesk 8 :smash:

ปัญหาที่เจอ

  1. มี duplicate key (มาจากไหนก็ไม่รู้) ซึ่งตอน dump แนะนำให้ใส่ parameter --force เข้าไปด้วยจะช่วยได้ เพราะมันเกิดจากต้นฉบับ (check แล้ว ต้นฉบับ key ซ้ำจริงๆ)

MySQL 5

ขอบคุณมากครับท่าน

เพิ่มตรงนี้ก็ได้ครับ
–compatible=mysql40