วันนี้ใช้งาน mysql version 9.0 บน docker โดยใช้ Image mysql official image จาก hub.docker.com พบว่ามีการเปลี่ยนแปลงดังนี้
- Charset ที่เคยใช้ urf8_general_ci deprecated ไปแล้ว
- ต้องเปลี่ยนมาใช้ charset คือ utf8mb4 และต้องเปลี่ยน collation เป็น utf8mb4_unicode_ci แทน
การ config ให้ container สามารถใช้ charset และ collation ดังกล่าวได้มีวิธีการดังนี้
- สร้างไฟล์ config my.cnf ไว้ที่ในไดเรกทอรี่ที่รัน docker หรือ docker-compose
- กำหนดรายละเอียดในไฟล์ my.cnf ดังนี้
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
3. จากนั้นทำการ map volume config ของ mysql เข้าไปทับใน docker ดังนี้
volumes:
- /home/www/db:/var/lib/mysql
- /home/www/etc/my.cnf:/etc/my.cnf:ro
- /home/www/data:/root
4. เมื่อ config เสร็จเรียบร้อย ดำเนินการรัน docker ใหม่ สำหรับผู้ใช้ docker-compose ดังนี้
docker-compose down
docker-compose up -d
ใส่ความเห็น