ตำแหน่งที่จัดเก็บไฟล์ฐานข้อมูล MySQL สามารถดูได้จากตัวแปรระบบ @@datadir
รูปแบบคำสั่ง
SELECT @@datadir;
ตัวอย่างผลลัพธ์
mysql> select @@datadir;
+---------------------------------------------+ | @@datadir | +---------------------------------------------+ | C:\ProgramData\MySQL\MySQL Server 8.0\Data\ | +---------------------------------------------+
โครงสร้างไฟล์ในโฟลเดอร์ Data
- แต่ละฐานข้อมูล = โฟลเดอร์หนึ่งโฟลเดอร์
- ในโฟลเดอร์ฐานข้อมูล จะมีไฟล์
.ibd(InnoDB tablespace) และ.frm(table definition - เก่ากว่า MySQL 8.0) - MySQL 8.0+ เก็บ metadata ใน Data Dictionary ไม่ได้ใช้ .frm แล้ว
ตำแหน่งทั่วไปตามระบบปฏิบัติการ
| OS | ตำแหน่งเริ่มต้นทั่วไป |
|---|---|
| Windows | C:\ProgramData\MySQL\MySQL Server X.Y\Data\ |
| Linux (apt/yum) | /var/lib/mysql/ |
| macOS (Homebrew) | /usr/local/var/mysql/ หรือ /opt/homebrew/var/mysql/ |
| Docker | /var/lib/mysql/ (ใน container) |
วิธีเปลี่ยนตำแหน่ง
- หยุด MySQL service
- ย้ายโฟลเดอร์ Data ไปตำแหน่งใหม่
- แก้ไข
datadirในไฟล์my.cnfหรือmy.ini - ปรับ permission ให้ถูกต้อง
- เริ่ม MySQL service ใหม่
คำสั่งดูค่าปัจจุบัน
SHOW VARIABLES LIKE 'datadir';