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