การติดตั้ง MySQL 8.0 บน Cloud VPS Ubuntu

MySQL 8.0 เป็นเวอร์ชันหลักล่าสุดของระบบจัดการฐานข้อมูลที่ได้รับความนิยมสูงสุด มาพร้อมฟีเจอร์ใหม่มากมาย ทั้ง Window Functions, CTEs, JSON enhancements และระบบ Authentication แบบ caching_sha2_password ที่ปลอดภัยกว่าเดิม

บทความนี้จะแนะนำขั้นตอนการติดตั้ง MySQL 8.0 บน Cloud VPS ที่ใช้ Ubuntu 22.04 หรือ 24.04 อย่างละเอียด ตั้งแต่การเพิ่ม APT Repository, ติดตั้ง Package, ตั้งค่าเบื้องต้น ไปจนถึงการรัน Secure Installation Script เพื่อให้พร้อมใช้งานอย่างปลอดภัย

ความต้องการของระบบ

ก่อนเริ่มติดตั้ง ให้ตรวจสอบว่าเซิร์ฟเวอร์มีคุณสมบัติดังนี้ — Ubuntu 22.04 LTS หรือ 24.04 LTS, RAM อย่างน้อย 512 MB (แนะนำ 1 GB ขึ้นไปสำหรับ Production), พื้นที่ดิสก์ว่างอย่างน้อย 1 GB และสิทธิ์ root หรือ sudo

อัพเดต Package ของระบบ

เริ่มต้นด้วยการอัพเดต Package List และอัพเกรด Package ที่มีอยู่ให้เป็นเวอร์ชันล่าสุด เพื่อให้แน่ใจว่าระบบพร้อมสำหรับการติดตั้ง

sudo apt update && sudo apt upgrade -y

ติดตั้ง MySQL 8.0 จาก APT Repository

Ubuntu 22.04 และ 24.04 มี MySQL 8.0 อยู่ใน Default Repository อยู่แล้ว สามารถติดตั้งได้โดยตรงด้วยคำสั่ง

sudo apt install mysql-server -y

หากต้องการใช้ Repository จาก Oracle โดยตรง (เพื่อให้ได้ Patch ล่าสุดเร็วกว่า) สามารถเพิ่ม Official APT Repository ได้ดังนี้

wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
sudo apt update
sudo apt install mysql-server -y

ระหว่างการติดตั้งจาก Official Repository ระบบอาจถามให้ตั้ง Root Password ให้ตั้งรหัสผ่านที่แข็งแกร่ง (ตัวเล็ก ตัวใหญ่ ตัวเลข อักขระพิเศษ อย่างน้อย 12 ตัว)

ตรวจสอบสถานะและเวอร์ชัน

หลังติดตั้งเสร็จ ตรวจสอบว่า Service ทำงานอยู่และเป็นเวอร์ชันที่ถูกต้อง

sudo systemctl status mysql
mysql --version

ผลลัพธ์ควรแสดงสถานะ “active (running)” และเวอร์ชัน 8.0.x หาก Service ไม่ได้ Start อัตโนมัติ สามารถ Start และเปิด Auto-start ได้ด้วย

sudo systemctl start mysql
sudo systemctl enable mysql

รัน Secure Installation

ระบบมี Script สำหรับตั้งค่าความปลอดภัยเบื้องต้น ซึ่งจะช่วยลบ Anonymous Users, ปิด Remote Root Login, ลบ Test Database และ Reload Privilege Tables

sudo mysql_secure_installation

Script จะถามคำถามทีละข้อ แนะนำให้ตอบตามนี้

VALIDATE PASSWORD COMPONENT — เลือก Yes เพื่อเปิดใช้ Password Validation ช่วยบังคับให้ผู้ใช้ตั้งรหัสผ่านที่แข็งแกร่ง แนะนำเลือก Level 2 (STRONG) สำหรับ Production

Set Root Password — หากยังไม่ได้ตั้งระหว่างติดตั้ง ให้ตั้งรหัสผ่าน Root ที่นี่

Remove Anonymous Users — เลือก Yes เพื่อลบ User ที่ไม่ต้อง Login ก็เข้าได้

Disallow Root Login Remotely — เลือก Yes เพื่อจำกัดให้ Root Login ได้เฉพาะจาก localhost เท่านั้น

Remove Test Database — เลือก Yes เพื่อลบ Database ตัวอย่างที่ไม่จำเป็น

Reload Privilege Tables — เลือก Yes เพื่อให้การเปลี่ยนแปลงมีผลทันที

ทดสอบเข้าใช้งาน

ทดสอบ Login เข้าสู่ระบบด้วยคำสั่ง

sudo mysql -u root -p

หลัง Login สำเร็จจะเข้าสู่ Database Shell สามารถลองสร้าง Database ทดสอบได้

CREATE DATABASE test_db;
SHOW DATABASES;
DROP DATABASE test_db;

หากแสดง Database ที่สร้างได้ แสดงว่าระบบพร้อมใช้งานแล้ว พิมพ์ EXIT หรือ \q เพื่อออกจาก Shell

สร้าง User สำหรับแอปพลิเคชัน

ไม่ควรใช้ Root User สำหรับการเชื่อมต่อจากแอปพลิเคชัน ให้สร้าง User แยกที่มีสิทธิ์เฉพาะ Database ที่ต้องการ

CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
CREATE DATABASE myapp_db;
GRANT ALL PRIVILEGES ON myapp_db.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;

คำสั่งข้างต้นสร้าง User ชื่อ appuser ที่เข้าถึงได้เฉพาะจาก localhost และมีสิทธิ์เต็มเฉพาะ Database myapp_db เท่านั้น หากต้องการให้เข้าถึงจากเครื่องอื่นได้ ให้เปลี่ยน ‘localhost’ เป็น ‘%’ หรือ IP Address ที่ต้องการ

ปรับ Firewall ให้เปิดพอร์ต 3306

หากต้องการให้ Remote Client เชื่อมต่อได้ ต้องเปิดพอร์ต 3306 ใน Firewall แต่แนะนำให้เปิดเฉพาะ IP ที่ต้องการเท่านั้น ไม่ควรเปิดให้ทุก IP เข้าถึงได้

sudo ufw allow from 203.0.113.50 to any port 3306
sudo ufw reload

เปลี่ยน 203.0.113.50 เป็น IP ของเครื่องที่ต้องการเชื่อมต่อ นอกจากนี้ต้องแก้ไข bind-address ในไฟล์ Configuration ด้วย

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

เปลี่ยน bind-address จาก 127.0.0.1 เป็น 0.0.0.0 (หรือ IP ของเซิร์ฟเวอร์) แล้ว Restart Service

sudo systemctl restart mysql

สรุป

การติดตั้ง MySQL 8.0 บน Ubuntu ทำได้ง่ายด้วย APT Package Manager เพียงไม่กี่คำสั่ง สิ่งสำคัญที่ไม่ควรข้ามคือการรัน mysql_secure_installation เพื่อตั้งค่าความปลอดภัย, สร้าง User แยกสำหรับแอปพลิเคชันแทนการใช้ Root และจำกัดการเข้าถึงจากภายนอกให้เฉพาะ IP ที่จำเป็น เมื่อทำตามขั้นตอนเหล่านี้ครบ ระบบจัดการฐานข้อมูลจะพร้อมรองรับงาน Production อย่างมั่นใจ

แนะนำบริการ DE

หากต้องการเซิร์ฟเวอร์ที่ติดตั้งระบบจัดการฐานข้อมูลได้ทันทีพร้อม Root Access เต็มรูปแบบ Cloud VPS ของ DE รองรับ Ubuntu 22.04 และ 24.04 มาพร้อม SSD Storage ที่ให้ IOPS สูง เหมาะกับ Database Workload ที่ต้องการความเร็วในการอ่านเขียน

สำหรับผู้ที่ต้องการฐานข้อมูลพร้อมใช้งานโดยไม่ต้องติดตั้งเอง Cloud Hosting ของ DE มี MySQL และ phpMyAdmin ตั้งค่าให้เรียบร้อย เหมาะกับ WordPress และเว็บแอปพลิเคชันทั่วไป