สอนใช้งาน MySQL
MySQL เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่นิยมใช้กับเว็บไซต์และแอปพลิเคชันจำนวนมาก ติดตั้งง่าย มีเครื่องมือครบ และรองรับ SQL มาตรฐานพร้อมคำสั่งเฉพาะของตัวเอง บทความนี้จะพาติดตั้ง สร้างฐานข้อมูลและผู้ใช้ สร้างตาราง และสำรองข้อมูลด้วย `mysqldump`
หมายเหตุการทดสอบ: เครื่องที่ใช้เขียนบทความนี้ไม่มีเซิร์ฟเวอร์ MySQL จึงยังไม่ได้รันคำสั่งในบทความ คำสั่ง SQL ที่ใช้เป็นชุดเดียวกับที่ทดสอบกับ SQLite ในบทความ SQL ควรรันเองบนเครื่องที่ติดตั้ง MySQL แล้ว
สิ่งที่ต้องเตรียม
- MySQL 8.0 ขึ้นไป ดาวน์โหลดจาก dev.mysql.com หรือใช้ MariaDB ที่ใช้คำสั่งส่วนใหญ่เหมือนกัน
- รหัสผ่าน root ที่ตั้งตอนติดตั้ง
ภาพรวมการเชื่อมต่อ
ขั้นที่ 1: เข้าสู่ระบบ
mysql -u root -p
ขั้นที่ 2: สร้างฐานข้อมูลและผู้ใช้
CREATE DATABASE school CHARACTER SET utf8mb4;
CREATE USER 'teacher'@'localhost' IDENTIFIED BY 'change-me';
GRANT SELECT, INSERT, UPDATE, DELETE ON school.* TO 'teacher'@'localhost';
FLUSH PRIVILEGES;
`CHARACTER SET utf8mb4` ทำให้เก็บภาษาไทยและอีโมจิได้ครบ ควรเปลี่ยนรหัสผ่านตัวอย่างเป็นรหัสที่ปลอดภัย
ขั้นที่ 3: สร้างตารางและเพิ่มข้อมูล
USE school;
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
score INT
);
INSERT INTO students (name, score) VALUES ('สมชาย', 85), ('สมหญิง', 72);
SELECT name, score FROM students WHERE score >= 80;
`AUTO_INCREMENT` สร้างหมายเลขอัตโนมัติ และ `VARCHAR(100)` กำหนดความยาวสูงสุดของข้อความ
ขั้นที่ 4: สำรองและกู้คืนข้อมูล
mysqldump -u root -p school > school_backup.sql
mysql -u root -p school < school_backup.sql
ข้อผิดพลาดที่มักพบ
- **ภาษาไทยเป็นเครื่องหมายคำถาม:** ตรวจว่าฐานข้อมูลและการเชื่อมต่อใช้ `utf8mb4`
- **ให้สิทธิ์ root แก่แอปพลิเคชัน:** สร้างผู้ใช้แยกและให้สิทธิ์เท่าที่จำเป็น
- **ลืมสำรองก่อนอัปเดต:** รัน `mysqldump` ก่อนทุกครั้งที่เปลี่ยนโครงสร้างตาราง
ขั้นต่อไป
เรียนรู้ดัชนีเพื่อเพิ่มความเร็ว การใช้ `EXPLAIN` ดูแผนการค้นหา และการตั้งค่าการสำรองข้อมูลอัตโนมัติ
สรุป
MySQL ทำงานเป็นเซิร์ฟเวอร์ที่แยกฐานข้อมูลและสิทธิ์ผู้ใช้ได้ การตั้ง `utf8mb4` ตั้งแต่ต้น การสร้างผู้ใช้แยก และการสำรองข้อมูลสม่ำเสมอ เป็นพื้นฐานสำคัญของการใช้งานจริง