Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: รันไฟล์ SQL จาก Terminal (Command Line)

สามารถรันไฟล์ .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)

  1. กด Win + R → พิมพ์ cmd → Enter
  2. เข้าไปในโฟลเดอร์ bin ของ MySQL (เช่น C:\Program Files\MySQL\MySQL Server 8.0\bin)
  3. รันคำสั่ง:
mysql -u root -p test < mydb.sql
  1. กรอกรหัสผ่านเมื่อถาม
  2. รอจนเสร็จ (ไม่มีข้อความ = สำเร็จ)

ตัวอย่างไฟล์ 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
-vVerbose (แสดงคำสั่งที่กำลังรัน)
--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