สามารถรันไฟล์ .sql เข้าสู่ MySQL Database ได้โดยตรงจาก Command Line (Terminal/CMD) โดยไม่ต้องเปิด MySQL Client
รูปแบบคำสั่ง
mysql -u username -p database_name < file_name.sql
-u username- ชื่อผู้ใช้ MySQL-p- ขอรหัสผ่าน (จะ prompt ให้กรอก)database_name- ชื่อฐานข้อมูลปลายทาง< file_name.sql- Redirect input จากไฟล์
ขั้นตอนการทำงาน (Windows)
- กด Win + R → พิมพ์
cmd→ Enter - เข้าไปในโฟลเดอร์
binของ MySQL (เช่นC:\Program Files\MySQL\MySQL Server 8.0\bin) - รันคำสั่ง:
mysql -u root -p test < mydb.sql
- กรอกรหัสผ่านเมื่อถาม
- รอจนเสร็จ (ไม่มีข้อความ = สำเร็จ)
ตัวอย่างไฟล์ mydb.sql
-- mydb.sql
USE test;
CREATE TABLE Instructor (
id INT PRIMARY KEY,
Name VARCHAR(20)
);
INSERT INTO Instructor VALUES (1, 'John'), (2, 'Larry'), (3, 'Sam');
ตรวจสอบผลลัพธ์
หลังรันคำสั่ง ให้เข้า MySQL Client ตรวจสอบ:
mysql -u root -p
USE test;
SHOW TABLES;
SELECT * FROM Instructor;
ผลลัพธ์:
+----+-------+
| id | Name |
+----+-------+
| 1 | John |
| 2 | Larry |
| 3 | Sam |
+----+-------+
ตัวเลือกเพิ่มเติม
| ตัวเลือก | คำอธิบาย |
|---|---|
-h host | ระบุโฮสต์ (default: localhost) |
-P port | ระบุพอร์ต (default: 3306) |
--default-character-set=utf8mb4 | บังคับ character set |
-v | Verbose (แสดงคำสั่งที่กำลังรัน) |
--force | ทำต่อแม้มี error |
รันหลายไฟล์พร้อมกัน
# Linux/Mac
cat file1.sql file2.sql | mysql -u root -p db_name
# Windows (PowerShell)
Get-Content file1.sql, file2.sql | mysql -u root -p db_name
Export Database เป็นไฟล์ SQL (mysqldump)
mysqldump -u root -p db_name > backup.sql
คำสั่งนี้สร้างไฟล์ SQL ที่มี CREATE TABLE และ INSERT ทั้งหมด สามารถนำไป mysql -u root -p new_db < backup.sql ได้
สรุป
ใช้ mysql -u user -p db < file.sql สำหรับ Import และ mysqldump -u user -p db > file.sql สำหรับ Export เหมาะสำหรับ Automation, CI/CD, และ Backup/Restore