การตั้งค่า charset มาตรฐานให้ MySQL

ค่ามาตรฐาน Charset ของ MySQL ที่กำหนดมาให้หากเราไม่ตั้งค่าอะไรจะมีค่าเป็น latin1 ครับ ซึ่งเป็นเหตุผลที่ทำให้เวลาเราทำเว็บไซต์ทำไม output ที่ออกมาจากฐานข้อมูลบางค่ากลายเป็นภาษาต่างดาว ภาษาอักขระที่อ่านไม่ออก

เราสามารถแก้ไขได้โดย เพิ่มการตั้งค่าดังต่อไปนี้ลงในไฟล์ /etc/my.cnf

nano -w /etc/my.cnf

การตั้งค่าที่เพิ่มเข้าไป

[client]
 default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

สามารถเปลี่ยน utf8 เป็น tis620 หรือ cahrset อื่นๆ ได้ตามต้องการครับ เสร็จเรียบร้อยแล้วให้ restart MySQL

service mysqld restart

ข้อควรจำ :

  • การตั้งค่านี้ควรปรับแต่งให้เรียบร้อยก่อนสร้างฐานข้อมูลใดๆ บน Server เพื่อที่จะได้ไม่ต้องมา convert ฐานข้อมูลที่สร้างเป็น latin1 ไปแล้วทีหลัง
  • เมื่อดำเนินการด้านบนแล้ว ฐานข้อมูลที่เคยสร้างเป็น latin1 อาจมีปัญหาเรื่อง charset ได้ครับ

Was this article helpful?

Related Articles