การตั้งค่าและปรับแต่งฐานข้อมูล MySQL ใน ServBay
ServBay มาพร้อมกับ MySQL และมีตัวเลือกการตั้งค่าที่หลากหลาย เพื่อให้ดีเวลลอปเปอร์สามารถปรับแต่งได้ตามความต้องการของโปรเจกต์ ในบทความนี้จะอธิบายวิธีปรับแต่งค่าต่างๆ ของ MySQL ใน ServBay อย่างละเอียด ทั้งวิธีใช้งานผ่าน UI ตำแหน่งไฟล์ตั้งค่า และพารามิเตอร์สำคัญที่ควรรู้
ขึ้นอยู่กับเวอร์ชั่นของ MySQL ที่ติดตั้ง ไฟล์คอนฟิกและไฟล์ข้อมูลที่เกี่ยวข้องจะอยู่ในไดเรกทอรีติดตั้ง ServBay (โดยปกติคือ /Applications/ServBay
) ในโฟลเดอร์ย่อยเฉพาะ
ข้อควรระวังสำคัญ
ServBay ให้วิธีบริหารจัดการค่าต่างๆ ของซอฟต์แวร์และบริการต่างๆ ผ่านหน้าจอกราฟิก ขอแนะนำอย่างยิ่งให้ใช้งานผ่าน UI ของ ServBay เพื่อทำการตั้งค่า เพราะ ServBay จะดูแลการสร้างและจัดการไฟล์คอนฟิกให้อัตโนมัติ หากคุณแก้ไขไฟล์ด้วยตนเอง การอัปเดตหรือรีสตาร์ท ServBay อาจเขียนทับการเปลี่ยนแปลงเหล่านั้นทำให้ข้อมูลสูญหาย การแก้ไขไฟล์ด้วยตนเองควรใช้สำหรับการทดสอบหรือดีบักเพียงชั่วคราวเท่านั้น
การปรับแต่งค่าผ่าน UI ของ ServBay (แนะนำ)
ServBay มีหน้าจอบริหารจัดการที่ใช้งานง่ายและชัดเจน ให้ดีเวลลอปเปอร์ปรับค่าต่างๆ ได้โดยตรงผ่านกราฟิก หลังแก้ไขและบันทึก ค่าต่างๆ เหล่านี้จะถูกนำไปใช้ทันที ลดความผิดพลาดจากการแก้ไขไฟล์ด้วยตนเองได้มาก
วิธีแก้ไขค่า MySQL ให้เปิดแอปพลิเคชัน ServBay ไปที่แถบนำทางซ้ายมือ เลือก ฐานข้อมูล -> MySQL จากนั้นเลือกเวอร์ชั่นของ MySQL ที่ต้องการตั้งค่า
ในหน้าต่างแก้ไข คุณสามารถตั้งค่าและตรวจเช็คค่าที่สำคัญได้ เช่น
- ชื่อผู้ใช้และรหัสผ่านเริ่มต้น: ดูชื่อผู้ใช้ MySQL ที่ ServBay ตั้งไว้ให้ (โดยส่วนมากคือ
root
) และรหัสผ่านที่เกี่ยวข้อง - ที่อยู่รับฟัง (
bind-address
) และพอร์ตการเชื่อมต่อ (port
): เริ่มต้นคือ0.0.0.0:3306
หมายความว่า MySQL ฟังทุกอินเตอร์เฟซที่พอร์ต 3306 คุณสามารถเปลี่ยนเป็น127.0.0.1
เพื่อให้เชื่อมต่อได้เฉพาะจากเครื่องเดียวกัน หรือเปลี่ยนพอร์ตเพื่อหลีกเลี่ยงชนกับบริการอื่น - บันทึก Slow Query (
slow query log
): เปิด/ปิดการบันทึก slow query ได้ง่าย วิเคราะห์ประสิทธิภาพของ SQL ได้รวดเร็ว - จำนวนการเชื่อมต่อสูงสุด (
max_connections
): กำหนดจำนวนการเชื่อมต่อพร้อมกันสูงสุดที่อนุญาต - ขนาดแพ็กเกจที่อนุญาตมากที่สุด (
max_allowed_packet
): ตั้งขนาดไฟล์สูงสุดที่เซิร์ฟเวอร์จะรับ (ทั้ง statement หรือแถวเดียว) - การตั้งค่าอื่นๆ ที่พบบ่อย: ใน UI จะแสดงเมนูให้ปรับค่าที่ใช้บ่อยเพิ่มเติมตามความเหมาะสม
หลังปรับแต่ง กด บันทึก ที่ด้านล่างของหน้าจอ ServBay จะนำค่าที่กำหนดไปใช้ทันที และรีสตาร์ท MySQL อัตโนมัติถ้าจำเป็น
อ้างอิง: การแก้ไขไฟล์คอนฟิก MySQL ด้วยตนเอง (ไม่แนะนำ)
แม้จะไม่แนะนำ แต่การรู้ตำแหน่งไฟล์คอนฟิก MySQL ที่ ServBay ดูแลเองนั้นอาจเป็นประโยชน์สำหรับงานดีบักหรือการปรับค่าชั่วคราวบางกรณี
WARNING
ย้ำอีกครั้ง: การแก้ไขไฟล์ที่สร้างโดย ServBay อัตโนมัติด้วยตนเองเป็นสิ่งที่ไม่แนะนำ UI ของ ServBay หรือการอัปเดตภายหลังอาจล้างค่าเหล่านั้นได้ หากต้องการตั้งค่าถาวรควรใช้ UI เป็นหลัก การแก้ไขไฟล์ด้วยตนเองสำหรับการทดสอบชั่วคราวเท่านั้น
ภาพรวม
ใน ServBay ไฟล์คอนฟิก MySQL จะถูกจัดแยกตามเวอร์ชั่นของโปรแกรม ไฟล์เหล่านี้อยู่ในโฟลเดอร์เฉพาะภายใต้ไดเรกทอรีหลักของ ServBay
ตำแหน่งไฟล์คอนฟิก
ไฟล์คอนฟิกหลักของ MySQL ชื่อว่า my.cnf
อยู่ที่:
my.cnf
:/Applications/ServBay/etc/mysql/<version>/my.cnf
โดย <version>
ให้แทนที่ด้วยเวอร์ชั่น MySQL ที่คุณติดตั้ง เช่น 8.0
หรือ 9.0
my.cnf
my.cnf
เป็นไฟล์กำหนดค่าหลักของเซิร์ฟเวอร์ MySQL มีพารามิเตอร์หลากหลายที่ควบคุมพฤติกรรมของฐานข้อมูล
ตัวอย่างค่าตั้งค่าที่ใช้บ่อย
ด้านล่างคือตัวอย่างค่าที่พบบ่อยใน my.cnf
พร้อมอธิบายฟังก์ชั่นแต่ละรายการ กรุณาระวังเป็นพิเศษหากจะปรับค่าด้วยตนเอง
เปลี่ยนที่อยู่รับฟัง (
bind-address
): กำหนดว่า MySQL จะรับฟังอินเทอร์เฟซเน็ตเวิร์คใด0.0.0.0
คือทุกอินเทอร์เฟซ127.0.0.1
คือเฉพาะในเครื่องตัวเองini[mysqld] bind-address = 0.0.0.0
1
2เปลี่ยนพอร์ต (
port
): พอร์ตที่ MySQL รับฟัง เริ่มต้นคือ3306
ini[mysqld] port = 3306
1
2จำกัดจำนวนการเชื่อมต่อสูงสุด (
max_connections
): จำนวน Client ที่เชื่อมต่อพร้อมกันได้สูงสุด ปรับตามโหลดของโปรแกรมที่ใช้ฐานข้อมูลini[mysqld] max_connections = 200
1
2เปลี่ยนขนาด Buffer Pool ของ InnoDB (
innodb_buffer_pool_size
): กำหนดขนาดหน่วยความจำที่ใช้เก็บข้อมูลและ index สำหรับ InnoDB เป็นปัจจัยสำคัญต่อประสิทธิภาพ โดยปกติตั้งไว้ 50%-70% ของ RAM เครื่องini[mysqld] innodb_buffer_pool_size = 256M
1
2เปลี่ยนตำแหน่งไฟล์บันทึกข้อผิดพลาด (
log_error
): ระบุไฟล์ที่ใช้บันทึกบันทึก error สำหรับดูข้อผิดพลาดและเตือนขณะอะไหล่ini[mysqld] log_error = /Applications/ServBay/logs/mysql/error.log
1
2เปิดบันทึก slow query (
slow_query_log
): เมื่อเปิด MySQL จะบันทึก Query ที่ใช้เวลาดำเนินการเกินlong_query_time
ลงในไฟล์ log ที่ระบุini[mysqld] slow_query_log = 1 slow_query_log_file = /Applications/ServBay/logs/mysql/slow.log long_query_time = 2 # วินาที จะแสดงเฉพาะ query ที่ช้ากว่า 2 วิ
1
2
3
4กำหนดรหัสชุดอักขระและรูปแบบเปรียบเทียบ (
character-set-server
,collation-server
): ตั้งค่ารหัสชุดอักขระและ collation เริ่มต้น เช่นutf8mb4
แนะนำให้ใช้เพราะรองรับ Unicode เต็มที่และ Emojiini[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
1
2
3
วิธีดำเนินการหลังแก้ไขด้วยตนเอง
หากคุณได้แก้ไขไฟล์ด้วยตนเอง (สำหรับการทดสอบชั่วคราว) จำเป็นต้องรีสตาร์ท MySQL เพื่อให้ค่าที่เปลี่ยนไปเกิดผล
การรีสตาร์ท MySQL
ไม่ว่าจะปรับค่าด้วย UI หรือไฟล์คอนฟิก หลังเสร็จงานโดยปกติต้องรีสตาร์ท MySQL เพื่อให้ค่ามีผล
รีสตาร์ทผ่านหน้าจอจัดการของ ServBay
- เปิดหน้าจอจัดการ ServBay
- ที่แถบนำทางซ้าย เลือก แพ็คเกจซอฟต์แวร์
- ค้นหา MySQL เวอร์ชั่นที่ต้องการในรายการ แล้วกดปุ่ม รีสตาร์ท ด้านข้าง
รีสตาร์ทด้วยคำสั่ง servbayctl
บนเทอร์มินัล
ServBay มี CLI servbayctl
สำหรับบริหารจัดการต่างๆ ทางเทอร์มินัล
เปิดแอป Terminal และรันคำสั่ง (แทนที่ 9.0
ด้วยเวอร์ชั่น MySQL ที่คุณใช้):
bash
servbayctl restart mysql 9.0
1
คำถามที่พบบ่อย (FAQ)
ถาม: แก้ไขไฟล์
my.cnf
เองแล้ว ทำไมค่าถึงไม่เปลี่ยนตาม?ตอบ: ให้แน่ใจว่าคุณได้รีสตาร์ท MySQL แล้วหลังจากแก้ไข หาก ServBay UI ยังเปิดอยู่ หรือ ServBay มีการจัดการอัตโนมัติในระบบ ค่าที่คุณเปลี่ยนอาจถูกเขียนทับด้วยไฟล์ที่สร้างใหม่โดยอัตโนมัติ ขอแนะนำให้ตั้งค่าผ่าน UI เท่านั้น
ถาม: ตั้งค่าแล้ว MySQL ไม่ยอมสตาร์ท ต้องทำยังไง?
ตอบ: ปัญหานี้มักมาจากข้อผิดพลาดในไฟล์คอนฟิก เช่น syntax ผิด ควรตรวจสอบไฟล์
my.cnf
ที่คุณแก้ไข หรือดู log error ที่/Applications/ServBay/logs/mysql/error.log
(ตำแหน่งอาจต่างตามเวอร์ชัน) หากแก้ไม่ได้ ให้ลบค่าที่แก้ไขเองกลับสู่ค่าเดิม แล้วปรับผ่าน UI ของ ServBay เท่านั้นถาม: ลืมรหัส root ของ ServBay MySQL ทำอย่างไรดี?
ตอบ: สามารถดูรหัส root ปัจจุบันได้ในหน้าคอนฟิก MySQL ของ ServBay UI หรือถ้าต้องการรีเซ็ตรหัสผ่าน ServBay เวอร์ชันใหม่จะมีเมนูสำหรับตั้งรหัสใหม่ของฐานข้อมูล (MySQL, MariaDB, PostgreSQL) ผ่าน UI ควรดูคู่มือจัดการรหัสผ่านในหน้าเอกสาร ServBay
สรุป
การตั้งค่าฐานข้อมูล MySQL ใน ServBay นั้นยืดหยุ่นสูง ขอย้ำให้ทำผ่านหน้า UI ของ ServBay เพื่อความถูกต้องและค่าคงที่ของการตั้งค่า หากต้องการศึกษาลึกๆ สามารถดูที่ไฟล์ /Applications/ServBay/etc/mysql/<version>/my.cnf
แต่ไม่แนะนำให้แก้ไขเองระยะยาว ทุกครั้งที่ปรับค่าควรรีสตาร์ท MySQL ด้วย เข้าใจพารามิเตอร์หลักเหล่านี้จะช่วยเพิ่มประสิทธิภาพฐานข้อมูลในสภาพแวดล้อม local ของ ServBay ได้อย่างดี