แปลง Mysql Database ภาษาต่างดาวเป็น ภาษาไทย แบบปกติ

เมื่อก่อนตอนใช้ MySql แรกๆ ผมก็ติดตั้งแล้วก็ใช้งาน ลง Application แล้วก็ไม่ได้สนใจอะไรมาก แต่เมื่อถึงเวลาย้าย Server กลับต้องมามองว่า แล้ว Database ที่เราเก็บเนี้ย มันอ่านภาษาไทยไม่ได้เนี้ย ต้องทำยังไงกับมันดี ก็ได้ทดลอง และ พบวิธีแก้ปัญหา ดังที่เขียนด้านล่างครับ

ขั้นตอนแรกต้องอ่าน Table มันออกมาเป็น Script SQL เสียก่อน ด้วยคำสั่ง Backup Mysql ชื่อ mysqldump

ตัวอย่าง
เข้าไปที่ Dos
พิมพ์คำสั่ง cd \ เพื่อเข้าไปที่ Root ของ Drive C
พิมพ์คำสั่ง mysqldump –default-character-set={ค่า charset} -u {Username} -p {ชื่อ database}> backup.sql

ตัวอย่าง : mysqldump –default-character-set=latin1 -u root -p db_museumshopbangkok> msbkk_backup.sql

โดยแทนค่าดังนี้
{ค่า charset} = ของผมจะเป็น latin1
{Username} = username สำหรับ mysql
{ชื่อ database} = ชื่อ database ที่ต้องการ backup

จากนั้นกด Enter mysqldump จะถาม password ให้ใช่ Password ของ Root ไป

เราก็จะได้ไฟล์ที่อ่าน เป็น ภาษาไทยออกมาแล้ว ใน backup.sql

คราวนี้เราต้องมาแก้ charset ใน File backup.sql ให้ตรงกับ server ใหม่ โดยเปลี่ยนดังนี้

จาก
DEFAULT CHARSET=latin1;
เป็น
DEFAULT CHARSET=utf8;

จากนั้นก็เอาเข้า Server ใหม่ด้วย charset ที่เราตั้งใหม่ เหมือนกันทั้งหมด เป็นอันเสร็จสิ้นครับ

ใครมีปัญหาอะไรเม้นท์ถามได้ครับ

วันนี้เข้าไปค้นหาในเว็บเิพิ่มเติม ได้พบบทความเกี่ยวกับเรื่องนี้ ของ อาจารย์ ปัญญรักษ์ งามศรีตระกูล

การ dump ข้อมูลใน MySQL ให้ถูกต้องตาม Character-set

One Comment

  1. นพ says:

    ถ้าจะไม่ให้มี Data ก้อเพิ่ม Parameter
    —no-data
    เข้าไปด้วย แค่นี้ก็เอาแค่โครงสร้างมาสานต่อได้แล้วครับ :wink:

Leave a Reply