1. บทนำ
1.1 ภาพรวมของ MySQL และความสำคัญของบรรทัดคำสั่ง (Command Line)
MySQL เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) แบบโอเพนซอร์สที่ได้รับความนิยมอย่างแพร่หลาย ข้อดีหลักคือสามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพ และสามารถปรับแต่งการทำงานของข้อมูลได้อย่างยืดหยุ่นด้วยภาษา SQL (Structured Query Language) MySQL ถูกใช้งานในแอปพลิเคชันเว็บและระบบองค์กรต่าง ๆ อย่างกว้างขวาง โดยความสามารถอันทรงพลังของ MySQL จะถูกนำมาใช้ได้สูงสุดผ่านทางบรรทัดคำสั่งของ MySQL
1.2 วัตถุประสงค์ของบทความ
บทความนี้จะเน้นการใช้งาน MySQL ผ่านบรรทัดคำสั่ง ตั้งแต่การสร้างฐานข้อมูล การจัดการ การตั้งค่าสิทธิ์ของผู้ใช้ และอธิบายวิธีใช้คำสั่งพื้นฐานไปจนถึงขั้นสูง โดยเฉพาะสำหรับผู้เริ่มต้นและผู้ที่มีประสบการณ์ระดับกลาง ที่ต้องการเรียนรู้และใช้ MySQL อย่างมีประสิทธิภาพ
1.3 กลุ่มเป้าหมาย
คู่มือนี้เหมาะสำหรับผู้เริ่มต้นไปจนถึงผู้ที่มีประสบการณ์ระดับกลางที่สนใจใน MySQL โดยมีพื้นฐานด้านฐานข้อมูลและต้องการนำ MySQL ไปใช้ในการจัดการข้อมูลหรือพัฒนาเว็บ
2. คำสั่งพื้นฐานของ MySQL
2.1 การเชื่อมต่อและตัดการเชื่อมต่อฐานข้อมูล
เพื่อเข้าสู่ MySQL จำเป็นต้องเชื่อมต่อกับฐานข้อมูลก่อน คำสั่งที่ใช้เข้าสู่ระบบ MySQL Server บ่อยที่สุดคือ mysql -u root -p
เมื่อเรียกใช้คำสั่งนี้ MySQL Server จะเริ่มทำงานและพยายามเข้าสู่ระบบด้วยผู้ใช้ที่ระบุ (ในที่นี้คือ root)
mysql -u root -p
หลังจากพิมพ์คำสั่งนี้ จะมีการขอให้กรอกรหัสผ่าน หากกรอกรหัสผ่านถูกต้อง จะเข้าสู่บรรทัดคำสั่งของ MySQL ได้
ในการตัดการเชื่อมต่อ ให้ใช้คำสั่ง exit
หรือ quit
exit
คำสั่งนี้จะออกจาก MySQL Server และกลับไปยังพรอมต์คำสั่งของระบบ
2.2 การสร้างและแสดงฐานข้อมูล
ในการสร้างฐานข้อมูลใหม่ ให้ใช้คำสั่ง CREATE DATABASE
ตัวอย่างเช่น การสร้างฐานข้อมูลชื่อ mysqldemo
CREATE DATABASE mysqldemo;
เมื่อรันคำสั่งนี้ จะมีข้อความ “Query OK” แสดงขึ้นมา เพื่อยืนยันว่าฐานข้อมูลถูกสร้างเรียบร้อยแล้ว
หากต้องการดูรายการฐานข้อมูลที่มีอยู่ ให้ใช้คำสั่ง SHOW DATABASES
SHOW DATABASES;
คำสั่งนี้จะแสดงรายการฐานข้อมูลทั้งหมดที่มีอยู่ในเซิร์ฟเวอร์ขณะนั้น
2.3 การเลือกฐานข้อมูล
เมื่อมีหลายฐานข้อมูล จะต้องเลือกฐานข้อมูลที่ต้องการดำเนินการ สามารถเลือกได้ด้วยคำสั่ง USE
USE mysqldemo;
คำสั่งนี้จะตั้งค่าให้ mysqldemo
เป็นฐานข้อมูลที่ใช้งานในขณะนั้น และคำสั่งต่อไปจะทำงานกับฐานข้อมูลนี้

3. คำสั่งพื้นฐานเกี่ยวกับการจัดการตาราง
3.1 การสร้างตาราง
ก่อนจะจัดเก็บข้อมูลในฐานข้อมูล ต้องสร้างตารางก่อน ใช้คำสั่ง CREATE TABLE
ในการสร้างตารางใหม่ ตัวอย่างเช่น การสร้างตารางชื่อ users
มีคำสั่งดังนี้
CREATE TABLE users (
id INT AUTO_INCREMENT,
name VARCHAR(255),
email VARCHAR(255),
PRIMARY KEY (id)
);
ในตัวอย่างนี้ จะมี 3 คอลัมน์ในตาราง users
คือ id
, name
, email
โดย id
เป็นตัวเลขอัตโนมัติ (AUTO_INCREMENT) และกำหนดเป็น PRIMARY KEY
3.2 การแสดงตาราง
หลังจากสร้างตารางแล้ว สามารถดูรายการตารางทั้งหมดในฐานข้อมูลปัจจุบันได้ด้วยคำสั่ง SHOW TABLES
SHOW TABLES;
หากต้องการดูโครงสร้างของตารางใดตารางหนึ่ง ให้ใช้คำสั่ง DESCRIBE
ซึ่งจะแสดงรายละเอียดของคอลัมน์และชนิดข้อมูล
DESCRIBE users;
คำสั่งนี้จะแสดงชนิดข้อมูลและคุณสมบัติต่าง ๆ ของแต่ละคอลัมน์ในตาราง users
3.3 การเพิ่มและแสดงข้อมูล
หากต้องการเพิ่มข้อมูลในตาราง ให้ใช้คำสั่ง INSERT INTO
ตัวอย่างเช่น เพิ่มผู้ใช้ใหม่
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
คำสั่งนี้จะเพิ่มข้อมูลลงในคอลัมน์ name
และ email
ของตาราง users
หากต้องการดูข้อมูลทั้งหมดในตาราง ให้ใช้คำสั่ง SELECT
ตัวอย่างเช่น
SELECT * FROM users;
คำสั่งนี้จะแสดงข้อมูลทั้งหมดที่มีอยู่ในตาราง users
4. การจัดการผู้ใช้และความปลอดภัย
4.1 การสร้างผู้ใช้และกำหนดสิทธิ์
ใน MySQL ควรสร้างผู้ใช้และกำหนดสิทธิ์ให้เหมาะสม เพื่อป้องกันการเข้าถึงฐานข้อมูลโดยไม่ได้รับอนุญาต การสร้างผู้ใช้ใหม่ทำได้ด้วยคำสั่ง CREATE USER
ตัวอย่างนี้จะสร้างผู้ใช้ user1
สำหรับ localhost
และตั้งรหัสผ่านเป็น password123
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password123';
คำสั่งนี้จะสร้างผู้ใช้ใหม่ชื่อ user1
ซึ่งสามารถเชื่อมต่อจาก localhost เท่านั้น
การให้สิทธิ์กับผู้ใช้ ใช้คำสั่ง GRANT
ตัวอย่างเช่น ให้สิทธิ์ทั้งหมดกับ user1
สำหรับฐานข้อมูล mysqldemo
GRANT ALL PRIVILEGES ON mysqldemo.* TO 'user1'@'localhost';
คำสั่งนี้จะให้สิทธิ์ครบทุกอย่างกับ user1
ในฐานข้อมูล mysqldemo
หลังจากให้สิทธิ์แล้ว ควรใช้คำสั่ง FLUSH PRIVILEGES
เพื่อให้ระบบนำไปใช้ทันที
FLUSH PRIVILEGES;
4.2 การเปลี่ยนรหัสผ่าน
ถ้าต้องการเปลี่ยนรหัสผ่านของผู้ใช้ที่มีอยู่แล้ว ให้ใช้คำสั่ง UPDATE
เพื่ออัปเดตข้อมูลในตาราง user
ของฐานข้อมูล mysql
ตัวอย่างเช่น เปลี่ยนรหัสผ่านของผู้ใช้ root
UPDATE mysql.user SET authentication_string = PASSWORD('newpassword') WHERE User = 'root';
FLUSH PRIVILEGES;
คำสั่งนี้จะเปลี่ยนรหัสผ่านของผู้ใช้ root
เป็น newpassword
และใช้ FLUSH PRIVILEGES
เพื่อให้ระบบนำไปใช้
4.3 แนวทางปฏิบัติที่ดีที่สุดเพื่อความปลอดภัย
เพื่อเพิ่มความปลอดภัยให้ MySQL ควรปฏิบัติตามแนวทางดังนี้
- ลบผู้ใช้แบบนิรนามที่ไม่จำเป็น: ลบผู้ใช้แบบนิรนามที่ติดตั้งมาพร้อมกับระบบ เพื่อให้เฉพาะผู้ใช้ที่มีการยืนยันตัวตนเท่านั้นที่เข้าถึงฐานข้อมูลได้
- ปิดการเข้าสู่ระบบ root จากระยะไกล: เพื่อความปลอดภัย ให้ปิดไม่ให้ผู้ใช้ root เข้าระบบจากภายนอกเซิร์ฟเวอร์
- ใช้รหัสผ่านที่รัดกุม: เลือกรหัสผ่านที่คาดเดายากและเปลี่ยนรหัสผ่านเป็นระยะ ๆ
แนวทางเหล่านี้จะช่วยเพิ่มความปลอดภัยให้กับฐานข้อมูลและป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต

5. คำสั่ง MySQL ระดับสูง
5.1 การอัปเดตและลบข้อมูล
หากต้องการแก้ไขข้อมูลในตาราง ใช้คำสั่ง UPDATE
ตัวอย่างเช่น ต้องการแก้ไขชื่อในคอลัมน์ name
ของตาราง users
UPDATE users SET name = 'Jane Doe' WHERE id = 1;
คำสั่งนี้จะแก้ไขค่า name
ของเรคคอร์ดที่มี id
เท่ากับ 1 หากไม่ระบุ WHERE
ข้อมูลทุกแถวในตารางจะถูกแก้ไขทั้งหมด ดังนั้นควรระวัง
หากต้องการลบข้อมูล ใช้คำสั่ง DELETE
ตัวอย่างเช่น ลบเรคคอร์ดที่มี id
เท่ากับ 1
DELETE FROM users WHERE id = 1;
คำสั่งนี้จะลบเรคคอร์ดในตาราง users
ที่มี id
เท่ากับ 1
5.2 การสำรองข้อมูลและการกู้คืน
หากต้องการสำรองข้อมูลของฐานข้อมูล ใช้คำสั่ง mysqldump
ซึ่งจะส่งออกข้อมูลทั้งหมดเป็นไฟล์ SQL ตัวอย่างเช่น สำรองฐานข้อมูล mysqldemo
mysqldump -u root -p mysqldemo > mysqldemo_backup.sql
หากต้องการกู้คืนข้อมูล (Restore) ใช้คำสั่ง source
ตัวอย่างเช่น กู้คืนจากไฟล์ mysqldemo_backup.sql
mysql -u root -p mysqldemo < mysqldemo_backup.sql
คำสั่งนี้จะนำเข้าข้อมูลจาก mysqldemo_backup.sql
กลับเข้าสู่ฐานข้อมูล mysqldemo
5.3 การเริ่มต้นและหยุดเซิร์ฟเวอร์
หากต้องการเริ่มต้น MySQL Server จากบรรทัดคำสั่ง ให้ใช้คำสั่ง mysqld
เช่นใน Windows
"C:Program FilesMySQLMySQL Server 5.7binmysqld"
หากต้องการหยุดเซิร์ฟเวอร์ ให้ใช้คำสั่ง mysqladmin
"C:Program FilesMySQLMySQL Server 5.7binmysqladmin" -u root -p shutdown
คำสั่งนี้จะหยุดการทำงานของ MySQL Server การควบคุมจากบรรทัดคำสั่งนี้สะดวกมากในกรณีที่ไม่สามารถใช้ GUI ได้
6. การแก้ไขปัญหา
6.1 ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
ข้อผิดพลาดที่พบบ่อยขณะใช้ MySQL คือ “Access denied for user” ซึ่งมักเกิดจากการใส่ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง วิธีแก้ไขคือตรวจสอบชื่อผู้ใช้และรหัสผ่านให้ถูกต้องแล้วลองเข้าสู่ระบบใหม่อีกครั้ง
อีกข้อผิดพลาดหนึ่งคือ “Unknown database” ซึ่งหมายถึงฐานข้อมูลที่ระบุไม่มีอยู่ในระบบ สามารถตรวจสอบด้วยคำสั่ง SHOW DATABASES
และถ้ายังไม่มีฐานข้อมูลนั้น ให้สร้างใหม่ด้วยคำสั่ง
SHOW DATABASES;
CREATE DATABASE db_name;
6.2 ข้อควรระวังและเคล็ดลับในการจัดการฐานข้อมูล
ขณะใช้งานฐานข้อมูล ควรระวังเรื่องต่อไปนี้
- สำรองข้อมูลก่อนดำเนินการ: ก่อนดำเนินการสำคัญใด ๆ กับฐานข้อมูล ควรสำรองข้อมูลไว้ก่อนเสมอ เพื่อป้องกันข้อมูลสูญหายโดยไม่ได้ตั้งใจ
- ใช้ธุรกรรม (Transaction): เมื่อรันหลายคำสั่งที่เกี่ยวข้องกัน ให้ใช้ธุรกรรม (Transaction) เพื่อให้ข้อมูลคงสภาพสมบูรณ์ คำสั่งที่เกี่ยวข้องได้แก่
START TRANSACTION
,COMMIT
,ROLLBACK
- ระบุเงื่อนไขให้ถูกต้อง: เมื่อใช้คำสั่ง
UPDATE
หรือDELETE
ควรระบุWHERE
อย่างถูกต้อง เพื่อป้องกันการแก้ไขหรือการลบข้อมูลโดยไม่ตั้งใจ
หากปฏิบัติตามข้อควรระวังเหล่านี้ จะช่วยลดปัญหาและทำให้ใช้งาน MySQL ได้อย่างปลอดภัย
7. สรุป
MySQL Command Line เป็นเครื่องมือที่ทรงพลังสำหรับการจัดการและดูแลฐานข้อมูล ตั้งแต่พื้นฐานจนถึงงานขั้นสูง บทความนี้ได้อธิบายวิธีสร้างฐานข้อมูล การจัดการตาราง การบริหารผู้ใช้ การอัปเดตและลบข้อมูล ตลอดจนการใช้คำสั่งพื้นฐานของ MySQL
ในการดูแลฐานข้อมูล ควรให้ความสำคัญกับความปลอดภัยและความถูกต้องของข้อมูล เช่น การตั้งค่าสิทธิ์ของผู้ใช้ การจัดการรหัสผ่าน และการสำรองข้อมูล นอกจากนี้ ความรู้เกี่ยวกับการแก้ไขปัญหาจะช่วยให้จัดการกับข้อผิดพลาดได้อย่างรวดเร็ว
หากเรียนรู้คำสั่ง MySQL ได้อย่างเชี่ยวชาญ จะสามารถดูแลและดำเนินการกับฐานข้อมูลได้อย่างมีประสิทธิภาพและปลอดภัย ฝึกฝนบ่อย ๆ และนำความรู้ไปใช้จริง เพื่อเสริมสร้างทักษะในการดูแลฐานข้อมูลของคุณ