คู่มือการจัดการไฟล์และโยกย้ายฐานข้อมูลด้วย ServBay
ServBay เป็นสภาพแวดล้อมการพัฒนาเว็บบนเครื่องที่ทรงพลัง ซึ่งรวมระบบฐานข้อมูลที่ได้รับความนิยมหลายตัว พร้อมกับจัดการไฟล์ข้อมูลฐานข้อมูลแต่ละประเภทอย่างเป็นระเบียบ สำหรับนักพัฒนา การเข้าใจโครงสร้างการจัดเก็บไฟล์ฐานข้อมูลของ ServBay มีความสำคัญต่อการสำรองข้อมูล การกู้คืน และการโยกย้ายข้อมูลระหว่างสภาพแวดล้อมต่าง ๆ
บทความนี้จะอธิบายโครงสร้างการจัดเก็บไฟล์ฐานข้อมูลของ ServBay และแนะนำการจัดการไฟล์ฐานข้อมูล รวมถึงวิธีโยกย้ายข้อมูลโดยใช้เครื่องมือบรรทัดคำสั่งมาตรฐาน
TIP
ServBay มีฟังก์ชันการสำรองข้อมูลและการกู้คืน ที่ช่วยให้คุณสำรองข้อมูลฐานข้อมูล MySQL, MariaDB, PostgreSQL ได้ทั้งแบบอัตโนมัติและด้วยตนเอง ดูข้อมูลเพิ่มเติมที่ การสำรองข้อมูลและการกู้คืน
โครงสร้างการจัดเก็บไฟล์ฐานข้อมูลเริ่มต้นของ ServBay
เพื่อความสะดวกในการจัดการและแยกข้อมูลแต่ละเวอร์ชันของฐานข้อมูล ServBay จะจัดเก็บไฟล์ข้อมูลทั้งหมดไว้ในไดเรกทอรี /Applications/ServBay/db
โดยแบ่งตามประเภทฐานข้อมูล และภายในแต่ละประเภทจะแยกตาม Major Version
ตัวอย่างโครงสร้างไดเรกทอรี /Applications/ServBay/db
มีดังนี้
/Applications/ServBay/db
├── mysql
│ ├── 8.0
│ └── 8.1
├── mariadb
│ ├── 10.10
│ ├── 10.11
│ ├── 10.5
│ ├── 10.6
│ ├── 10.7
│ ├── 10.8
│ ├── 10.9
│ ├── 11.0
│ ├── 11.1
│ ├── 11.2
│ └── 11.3
├── postgresql
│ ├── 10
│ ├── 11
│ ├── 12
│ ├── 13
│ ├── 14
│ ├── 15
│ └── 16
└── redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
คำอธิบายโครงสร้างไดเรกทอรี
/Applications/ServBay/db
: โฟลเดอร์หลักสำหรับไฟล์ฐานข้อมูลทั้งหมดของ ServBaymysql
: เก็บไฟล์ข้อมูลฐานข้อมูล MySQL โดยแยกตาม Major Version (เช่น8.0
,8.1
)mariadb
: เก็บไฟล์ข้อมูลฐานข้อมูล MariaDB โดยแยกตาม Major Version (เช่น10.11
,11.3
)postgresql
: เก็บไฟล์ข้อมูลฐานข้อมูล PostgreSQL โดยแยกตาม Major Version (เช่น15
,16
)redis
: เก็บไฟล์ข้อมูลถาวรของ Redis เช่นไฟล์dump.rdb
ข้อดีของโครงสร้างนี้คือ คุณสามารถติดตั้งและรันหลายเวอร์ชันของฐานข้อมูลเดียวกันใน ServBay ได้พร้อมกันอย่างปลอดภัย โดยไฟล์ข้อมูลแต่ละเวอร์ชันถูกแยกออกจากกัน ไม่รบกวนซึ่งกันและกัน
การจัดการไฟล์ฐานข้อมูล
ในระหว่างการพัฒนา คุณอาจต้องการสำรองข้อมูล กู้คืน หรือโยกย้ายฐานข้อมูลอยู่บ่อยครั้ง ด้านล่างนี้คือวิธีการดำเนินการด้วยเครื่องมือบรรทัดคำสั่งมาตรฐานของแต่ละฐานข้อมูล หมายเหตุ: การดำเนินการเหล่านี้ควรทำผ่าน Terminal ที่ ServBay เตรียมให้ หรือปรับค่า Environment Variable ให้เรียกใช้เครื่องมือฐานข้อมูลที่ถูกต้อง
การสำรองข้อมูลฐานข้อมูล
การสำรองข้อมูลอย่างสม่ำเสมอ เป็นสิ่งสำคัญในการปกป้องข้อมูล ฐานข้อมูลแต่ละประเภทใน ServBay สำรองข้อมูลได้ดังนี้
การสำรอง MySQL
ใช้เครื่องมือ mysqldump
ในการสำรองฐานข้อมูล MySQL
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้ หรือแน่ใจว่า PATH มีไดเรกทอรี bin ของ ServBay
# เช่น: export PATH="/Applications/ServBay/bin:$PATH"
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
4
2
3
4
your_username
: ชื่อผู้ใช้ฐานข้อมูลของคุณyour_database
: ฐานข้อมูลที่ต้องการสำรอง/Applications/ServBay/backup/your_database.sql
: ที่ตั้งและชื่อไฟล์สำหรับสำรองข้อมูลที่ต้องการแนะนำให้จัดเก็บไว้ที่อื่น เช่น โฟลเดอร์ของผู้ใช้เอง นอก ServBay
การสำรอง MariaDB
วิธีสำรองข้อมูล MariaDB เหมือนกับ MySQL ใช้ mysqldump
เช่นกัน
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้ หรือแน่ใจว่า PATH มีไดเรกทอรี bin ของ ServBay
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- อธิบาย parameter เหมือน MySQL ข้างต้น
การสำรอง PostgreSQL
ใช้ pg_dump
เพื่อสำรองฐานข้อมูล PostgreSQL โดยใน ServBay มักติดตั้งแบบ Unix Domain Socket ที่เส้นทาง /Applications/ServBay/tmp
จึงควรระบุ -h /Applications/ServBay/tmp
ในคำสั่ง
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้ หรือแน่ใจว่า PATH มีไดเรกทอรี bin ของ ServBay
pg_dump -h /Applications/ServBay/tmp -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
- การเชื่อมต่อ:
- macOS:
-h /Applications/ServBay/tmp
ใช้ socket - Windows:
-h localhost -p 5432
ใช้ TCP
- macOS:
-U your_username
: ชื่อผู้ใช้ฐานข้อมูล-d your_database
: ฐานข้อมูลที่ต้องการสำรอง-F c
: กำหนด format ให้ออกเป็นไฟล์ archive (แนะนำ)-b
: รวมข้อมูล blob ด้วย-v
: โชว์รายละเอียดขั้นตอน-f
: ชื่อไฟล์และที่จัดเก็บไฟล์สำรองข้อมูล
การสำรอง Redis
Redis สำรองข้อมูลโดยการคัดลอกไฟล์ dump.rdb
ซึ่งเป็นไฟล์ถาวรของ Redis
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้
# ตรวจสอบให้มั่นใจว่า Redis กำลังรันหรือมีการตั้งค่า BGSAVE
cp /Applications/ServBay/db/redis/dump.rdb /Applications/ServBay/backup/dump.rdb
1
2
3
4
2
3
4
/Applications/ServBay/db/redis/dump.rdb
: ตำแหน่งเริ่มต้นของไฟล์ถาวร Redis/Applications/ServBay/backup/dump.rdb
: ที่จัดเก็บไฟล์สำรองข้อมูล
การกู้คืนฐานข้อมูล
หากเกิดการสูญหายข้อมูลหรืออยากย้อนกลับไปสถานะก่อนหน้า สามารถใช้ไฟล์สำรองในการกู้คืนได้
การกู้คืน MySQL
ใช้ mysql
client ในการนำไฟล์สำรองกลับสู่ฐานข้อมูล
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
your_username
: ชื่อผู้ใช้ฐานข้อมูลyour_database
: ฐานข้อมูลปลายทาง (ต้องสร้างมาก่อน)/Applications/ServBay/backup/your_database.sql
: ที่ตั้งไฟล์สำรองที่ต้องการกู้คืน
การกู้คืน MariaDB
วิธีการกู้คืน MariaDB เหมือนกับ MySQL ใช้ mysql
client เช่นกัน
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- Parameter เหมือนตัวอย่างด้านบน
การกู้คืน PostgreSQL
ใช้ pg_restore
ในการกู้คืนไฟล์สำรอง (custom format) ระบุ socket ด้วย -h /Applications/ServBay/tmp
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้
pg_restore -h /Applications/ServBay/tmp -U your_username -d your_database -v /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
- การเชื่อมต่อ:
- macOS:
-h /Applications/ServBay/tmp
ใช้ socket - Windows:
-h localhost -p 5432
ใช้ TCP
- macOS:
-U your_username
: ชื่อผู้ใช้ฐานข้อมูล-d your_database
: ฐานข้อมูลปลายทาง (ต้องสร้างไว้ล่วงหน้า)-v
: โชว์รายละเอียดขั้นตอน- เส้นทางไฟล์สำรอง:
- macOS:
/Applications/ServBay/backup/your_database.dump
- Windows:
C:\ServBay\backup\your_database.dump
- macOS:
การกู้คืน Redis
กู้คืน Redis โดยคัดลอกไฟล์ dump.rdb
กลับไปยังไดเรกทอรีข้อมูล สำคัญ: ต้องหยุดบริการ Redis ก่อนทำรายการ
bash
# เปลี่ยนไปใช้งาน Terminal ที่ ServBay เตรียมไว้
# หยุดบริการ Redis ใน ServBay
# คัดลอกไฟล์สำรอง
cp /Applications/ServBay/backup/dump.rdb /Applications/ServBay/db/redis/dump.rdb
# เริ่มบริการ Redis ใน ServBay
1
2
3
4
5
2
3
4
5
/Applications/ServBay/backup/dump.rdb
: ที่ตั้งไฟล์สำรอง/Applications/ServBay/db/redis/dump.rdb
: ตำแหน่งไฟล์ถาวร Redis
การโยกย้ายฐานข้อมูล
การโยกย้ายฐานข้อมูลคือการนำฐานข้อมูลจากสภาพแวดล้อมหนึ่ง (เช่น ServBay อื่น หรือเซิร์ฟเวอร์) ไปยังอีกสภาพแวดล้อมหนึ่ง ซึ่งมักต้องส่งออกข้อมูลแล้วนำไปนำเข้า
การโยกย้าย MySQL
การโยกย้าย MySQL เป็นกรณีที่พบบ่อยในการพัฒนา
ส่งออกฐานข้อมูลจากต้นทาง:
bash# ทำที่ Terminal ในต้นทาง mysqldump -u your_source_username -p your_database > your_database.sql
1
2your_source_username
: ชื่อผู้ใช้ฐานข้อมูลต้นทางyour_database
: ชื่อฐานข้อมูลที่จะโยกย้ายyour_database.sql
: ไฟล์ SQL ที่จะถูกสร้าง
ส่งไฟล์ SQL ไปยังปลายทาง: ใช้
scp
หรือวิธีการโอนไฟล์อื่น ส่งyour_database.sql
ไปยังปลายทาง (เช่น/Applications/ServBay/backup/
)สร้างฐานข้อมูลที่ปลายทางใน ServBay:
bash# ทำที่ Terminal ของ ServBay ปลายทาง mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2your_target_username
: ชื่อผู้ใช้ฐานข้อมูลที่ปลายทางyour_database
: ชื่อฐานข้อมูลที่จะสร้าง (ควรตรงกับของต้นทาง)
นำเข้า SQL เข้าสู่ฐานข้อมูลปลายทาง:
bash# ทำที่ Terminal ของ ServBay ปลายทาง mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2/path/to/your_database.sql
: เส้นทางจริงของไฟล์ SQL ในปลายทาง
การโยกย้าย MariaDB
การโยกย้าย MariaDB มีขั้นตอนเหมือน MySQL เพราะใช้เครื่องมือและไฟล์ format เดียวกัน
- ส่งออกฐานข้อมูลจากต้นทาง:bash
# ทำที่ Terminal ในต้นทาง mysqldump -u your_source_username -p your_database > your_database.sql
1
2 - ส่งไฟล์ SQL ไปยังปลายทาง
- สร้างฐานข้อมูลที่ปลายทางใน ServBay:bash
# ทำที่ Terminal ของ ServBay ปลายทาง mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - นำเข้า SQL เข้าสู่ฐานข้อมูลปลายทาง:bash
# ทำที่ Terminal ของ ServBay ปลายทาง mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2
การโยกย้าย PostgreSQL
การโยกย้าย PostgreSQL ใช้เครื่องมือ pg_dump
และ pg_restore
ต้องระวังเส้นทาง socket ใน ServBay
ส่งออกฐานข้อมูลจากต้นทาง:
bash# ทำที่ Terminal ของต้นทาง # ถ้าต้นทางคือ ServBay pg_dump -h /Applications/ServBay/tmp -U your_source_username -d your_database -F c -b -v -f your_database.dump # ถ้าเป็นระบบอื่นปรับค่าการเชื่อมต่อให้เหมาะสม
1
2
3
4your_source_username
: ชื่อผู้ใช้ฐานข้อมูลต้นทางyour_database
: ฐานข้อมูลที่จะโยกย้ายyour_database.dump
: ชื่อไฟล์ backup ที่จะถูกสร้าง
ส่งไฟล์ backup ไปยังปลายทาง: ใช้
scp
หรือวิธีโอนไฟล์อื่น ส่งyour_database.dump
ไปยังปลายทางที่เข้าถึงได้ใน ServBayสร้างฐานข้อมูลที่ปลายทางใน ServBay:
bash# ทำที่ Terminal ของ ServBay ปลายทาง # เข้าสู่ฐานข้อมูล postgres เพื่อสร้างฐานใหม่ psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: ชื่อผู้ใช้ฐานข้อมูลที่ปลายทางyour_database
: ชื่อฐานข้อมูลที่จะสร้าง
นำไฟล์ backup import เข้า ServBay:
bash# ทำที่ Terminal ของ ServBay ปลายทาง pg_restore -h /Applications/ServBay/tmp -U your_target_username -d your_database -v /path/to/your_database.dump
1
2/path/to/your_database.dump
: ตำแหน่งจริงของไฟล์ backup ในปลายทาง
การโยกย้าย Redis
Redis โยกย้ายข้อมูลด้วยการคัดลอกไฟล์ dump.rdb
โดยตรง
นำไฟล์
dump.rdb
จากต้นทาง:bash# ทำที่ Terminal ของต้นทาง # หยุดบริการ Redis หรือตรวจสอบ BGSAVE ให้เสร็จสิ้น cp /path/to/source/redis/dump.rdb ./dump.rdb
1
2
3ส่งไฟล์
dump.rdb
ไปยังไดเรกทอรี Redis ปลายทาง ServBay:bash# ทำที่ต้นทางหรือเครื่องกลาง scp ./dump.rdb your_target_server:/Applications/ServBay/db/redis/dump.rdb
1
2your_target_server
: ที่อยู่เซิร์ฟเวอร์ ServBay ปลายทาง- สำคัญ: ต้องหยุดบริการ Redis ในปลายทางก่อนคัดลอกไฟล์เข้า
/Applications/ServBay/db/redis/
เริ่มบริการ Redis ที่ปลายทาง: เมื่อเริ่มบริการ Redis จะโหลดไฟล์
dump.rdb
ที่คัดลอกเข้ามา
ข้อควรระวัง
- หยุดบริการก่อนคัดลอกหรือย้ายไฟล์ฐานข้อมูล: ต้องหยุดบริการแต่ละฐานข้อมูลก่อนทำการคัดลอกไฟล์ (โดยเฉพาะ MySQL/MariaDB/PostgreSQL) ทั้งผ่าน GUI หรือ command line ของ ServBay เพื่อป้องกันข้อมูลเสียหาย สำหรับ Redis ก็ต้องหยุดบริการก่อนกู้คืนจากไฟล์
dump.rdb
- สิทธิ์การใช้งาน: ผู้ใช้ต้องมีสิทธิ์เพียงพอในการเข้าถึงและแก้ไขไฟล์หรือไดเรกทอรีที่เกี่ยวข้อง
- เส้นทางไฟล์: ตรวจสอบเส้นทางติดตั้ง ServBay (เช่น
/Applications/ServBay
) และตำแหน่งไฟล์ฐานข้อมูลแต่ละประเภท โดยเฉพาะโฟลเดอร์เวอร์ชัน - ผู้ใช้และสิทธิ์ในฐานข้อมูล: หลังการโยกย้าย อาจต้องตรวจสอบหรือตั้งค่าผู้ใช้ สิทธิ์ และไฟล์ค่า config เพื่อให้เหมาะกับสภาพแวดล้อมใหม่
- สำรองข้อมูลแบบ built-in ใน ServBay: ServBay มีระบบสำรองข้อมูลและกู้คืนในตัว ช่วยจัดการการตั้งค่า ไฟล์เว็บไซต์ ไฟล์ฐานข้อมูล และใบรับรอง SSL ได้ผ่าน GUI สามารถใช้แทนหรือเสริมการจัดการไฟล์แบบ manual
สรุป
ServBay กำหนดโครงสร้างไฟล์ฐานข้อมูลอย่างเป็นระเบียบ ช่วยให้นักพัฒนาจัดการข้อมูลได้ง่ายขึ้น บทความนี้ครอบคลุมตำแหน่งไฟล์ของ MySQL, MariaDB, PostgreSQL และ Redis ภายใต้ ServBay และแนะนำวิธีสำรองข้อมูล กู้คืน และโยกย้ายฐานข้อมูลผ่านเครื่องมือมาตรฐาน เมื่อนำความรู้นี้ไปใช้ คุณจะสามารถจัดการข้อมูลฐานข้อมูลในสภาพแวดล้อมพัฒนาท้องถิ่นบน macOS ได้อย่างปลอดภัย มีประสิทธิภาพ และลดความเสี่ยง พร้อมทั้งสามารถใช้ฟีเจอร์เสริมอื่น ๆ ของ ServBay เช่น การสำรองข้อมูลแบบ built-in เพื่อเพิ่มเติมศักยภาพในการพัฒนาและดูแลข้อมูล