หลายระบบพัง…ไม่ใช่เพราะ Code แต่เพราะ “Database ตั้งค่าไม่เหมาะกับ Production”
MariaDB ติดตั้งง่ายก็จริง แต่ถ้าปล่อย default = เสี่ยงทั้ง Performance + Security
บทความนี้จะพาคุณตั้งค่า MariaDB แบบ พร้อมใช้งานจริงใน Production เน้น ปลอดภัย + เสถียร + ปรับแต่งได้
ในบทความนี้คุณจะได้เรียนรู้
- ติดตั้ง MariaDB บน Rocky Linux 9
- Secure database (ขั้นตอนสำคัญมาก)
- ตั้งค่า config สำหรับ Production
- สร้าง Database / User อย่างถูกต้อง
- ทดสอบการใช้งานจริง
ก่อนเริ่ม ต้องมี
- OS: Rocky Linux 9
- User ที่มี sudo privileges
- เปิด firewall (⚠️ ห้ามปิด)
- RAM อย่างน้อย 1GB (Production แนะนำ 2GB+)
1. ติดตั้ง MariaDB
# อัปเดตระบบ
sudo dnf update -y
# ติดตั้ง MariaDB Server
sudo dnf install mariadb-server -y
# ตรวจสอบ version
2. Start และ Enable Service
# เริ่ม service
sudo systemctl start mariadb
# ตั้งให้รันตอน boot
sudo systemctl enable mariadb
# ตรวจสอบสถานะ
sudo systemctl status mariadb
3. Secure MariaDB (สำคัญมาก)
-ระบบจะถาม
| คำถาม | คำตอบแนะนำ |
|---|---|
| Set root password | Y |
| Remove anonymous users | Y |
| Disallow root login remotely | Y |
| Remove test database | Y |
| Reload privilege tables | Y |
👉 ขั้นตอนนี้ช่วยปิดช่องโหว่พื้นฐาน
4. ตั้งค่า Firewall
sudo firewall-cmd –permanent –add-service=mysql
sudo firewall-cmd –reload
⚠️ Production จริง ควรจำกัด IP
sudo firewall-cmd –reload
5. ปรับแต่ง MariaDB สำหรับ Production
– ไฟล์ config
ค่าแนะนำ (Server RAM 2–4GB)
[mysqld]
# จำกัด connection
max_connections = 100
# Buffer Pool (70% ของ RAM โดยประมาณ)
innodb_buffer_pool_size = 1G
# Log เพื่อ debug
log_error = /var/log/mariadb/mariadb.log
# ปิด DNS lookup ลด latency
skip-name-resolve
# ป้องกัน query cache ปัญหาใน workload ใหม่
query_cache_type = 0
query_cache_size = 0
# InnoDB tuning
innodb_log_file_size = 256M
innodb_flush_method = O_DIRECT
# Slow query log
slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow.log
long_query_time = 2
Restart Service
6. สร้าง Database และ User
– เข้า MariaDB
✳️ สร้าง Database
👤 สร้าง User (ห้ามใช้ root)
🔑 กำหนดสิทธิ์
FLUSH PRIVILEGES;
7. ทดสอบการเชื่อมต่อ
– ลองสร้าง table
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100)
);
8. ตรวจสอบ Log และ Performance
– ตรสจสอบ error log
– ตรวจสอบ slow query
⚠️ ข้อควรระวัง (Production จริง)
- ❌ ห้ามใช้ root กับ application
- ❌ ห้ามเปิด 0.0.0.0 โดยไม่จำกัด IP
- ❌ ห้ามปิด firewall
- ✅ ใช้ strong password
- ✅ backup สม่ำเสมอ (mysqldump / xtrabackup)
- ✅ monitor ด้วย Prometheus + Grafana
สรุป
MariaDB สำหรับ Production ไม่ใช่แค่ “ติดตั้งแล้วจบ”
คุณต้อง
- Secure (mysql_secure_installation)
- Tune config ให้เหมาะกับ RAM
- แยก user / privilege
- เปิด log เพื่อตรวจสอบ
- ควบคุม firewall
👉 ถ้าทำครบ ระบบจะ เสถียร + ปลอดภัย + รองรับโหลดจริงได้
