คู่มือการจัดการไฟล์และการย้ายฐานข้อมูลใน 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 โดยแยกตามเวอร์ชันหลัก เช่น8.0
,8.1
mariadb
: สำหรับไฟล์ข้อมูลของ MariaDB แยกตามเวอร์ชันหลัก เช่น10.11
,11.3
postgresql
: สำหรับไฟล์ข้อมูลของ PostgreSQL แยกตามเวอร์ชันหลัก เช่น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 เช่น ใน home directory ของคุณ
สำรองข้อมูล 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
- คำอธิบายพารามิเตอร์เหมือนกับด้านบน
สำรองข้อมูล 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
-h /Applications/ServBay/tmp
: ระบุเส้นทาง socket ของเซิร์ฟเวอร์ PostgreSQL-U your_username
: ชื่อผู้ใช้ฐานข้อมูลของคุณ-d your_database
: ชื่อฐานข้อมูลที่ต้องการสำรอง-F c
: กำหนด output เป็น custom archive (แนะนำ)-b
: บันทึก large objects (blobs)-v
: แสดงผลแบบละเอียด-f /Applications/ServBay/backup/your_database.dump
: เส้นทางและชื่อไฟล์สำรอง
สำรองข้อมูล Redis
โดยทั่วไป Redis สำรองข้อมูลด้วยการคัดลอกไฟล์ถาวร dump.rdb
bash
# เข้าสู่ terminal ของ ServBay
# ตรวจสอบให้แน่ใจว่า Redis ทำงานอยู่หรือกำหนด autp save (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
เพื่อกู้คืนไฟล์สำรองของ MySQL
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
เช่นเดียวกับ MySQL กู้คืนด้วย mysql
ไคลเอนต์
bash
# เข้าสู่ terminal ของ ServBay
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- คำอธิบายพารามิเตอร์เหมือนกับด้านบน
กู้คืน PostgreSQL
ใช้ pg_restore
เพื่อกู้คืนไฟล์สำรองแบบ custom format โดยต้องระบุ socket file ด้วย -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
-h /Applications/ServBay/tmp
: ระบุ socket ของเซิร์ฟเวอร์ PostgreSQL-U your_username
: ชื่อผู้ใช้ฐานข้อมูล-d your_database
: ชื่อฐานข้อมูลเป้าหมาย (ควรสร้างฐานข้อมูลว่างไว้ก่อน)-v
: แสดงผลละเอียด/Applications/ServBay/backup/your_database.dump
: ตำแหน่งไฟล์สำรอง
กู้คืน 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 เครื่องอื่น, เซิร์ฟเวอร์ระยะไกล ฯลฯ) ไปยังสภาพแวดล้อมใหม่ โดยทั่วไปคือการ export ที่ฝั่งต้นทาง แล้ว import ที่ฝั่งปลายทาง
การย้าย MySQL
การย้าย MySQL เป็นงานที่มักพบในงานพัฒนา
Export ฐานข้อมูลจากต้นทาง:
bash# รันใน terminal ของต้นทาง mysqldump -u your_source_username -p your_database > your_database.sql
1
2your_source_username
: ชื่อผู้ใช้ต้นทางyour_database
: ชื่อฐานข้อมูลที่ต้องการย้ายyour_database.sql
: ชื่อไฟล์ SQL สำหรับ backup
ถ่ายโอนไฟล์ SQL ไปยังปลายทาง: ใช้
scp
หรือเครื่องมือ copy อื่น ๆ นำไฟล์your_database.sql
ไปยังตำแหน่งที่เข้าถึงได้ใน ServBay ปลายทาง (เช่น/Applications/ServBay/backup/
)สร้างฐานข้อมูลที่ปลายทาง:
bash# รันใน terminal ของ ServBay ปลายทาง mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2your_target_username
: ชื่อผู้ใช้ฐานข้อมูลปลายทางyour_database
: ชื่อฐานข้อมูลเป้าหมาย (ควรตรงกับชื่อเดิม)
Import ฐานข้อมูลที่ปลายทาง:
bash# รันใน terminal ของ ServBay ปลายทาง mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2/path/to/your_database.sql
: ตำแหน่งจริงของ SQL file ในปลายทาง
การย้าย MariaDB
การย้าย MariaDB เหมือนกับ MySQL ทุกประการ ใช้เครื่องมือและไฟล์ฟอร์แมตเดียวกัน
- Export ฐานข้อมูลจากต้นทาง:bash
# รันใน terminal ของต้นทาง mysqldump -u your_source_username -p your_database > your_database.sql
1
2 - ถ่ายโอนไฟล์ SQL ไปยังปลายทาง
- สร้างฐานข้อมูลที่ปลายทาง:bash
# รันใน terminal ของ ServBay ปลายทาง mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - Import ฐานข้อมูลที่ปลายทาง: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
Export ฐานข้อมูลจากต้นทาง:
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 ไปยัง ServBay ปลายทาง: ใช้
scp
หรือเครื่องมืออื่นในการย้ายไฟล์your_database.dump
สร้างฐานข้อมูลที่ปลายทาง:
bash# รันใน terminal ของ ServBay ปลายทาง # เชื่อมต่อกับ database postgres เพื่อสร้างฐานข้อมูลเปล่า psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: ผู้ใช้ฐานข้อมูลปลายทางyour_database
: ชื่อฐานข้อมูลที่ต้องการสร้าง
Import ฐานข้อมูลที่ปลายทาง:
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 คือ copy ไฟล์ 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 ของปลายทางก่อนคัดลอกไฟล์
เริ่มเซอร์วิส Redis ที่ปลายทาง: เมื่อ Redis เริ่มใหม่จะอ่านไฟล์
dump.rdb
อัตโนมัติ
ข้อควรระวัง
- หยุดบริการแต่ละตัวก่อนถ่ายโอนไฟล์: ก่อนคัดลอกหรือย้ายไฟล์ข้อมูลฐานข้อมูล (โดยเฉพาะ MySQL/MariaDB/PostgreSQL) จำเป็นต้อง หยุดบริการฐานข้อมูลผ่าน ServBay GUI หรือ CLI การคัดลอกไฟล์ระหว่างที่ฐานข้อมูลทำงานเสี่ยงข้อมูลเสียหาย Redis ก็ต้องหยุดก่อนคัดลอก
dump.rdb
เช่นกัน - สิทธิ์และการอนุญาตไฟล์: ตรวจสอบให้แน่ใจว่าผู้ใช้ที่ดำเนินการคัดลอก/ดูดไฟล์มีสิทธิ์เข้าถึงและแก้ไขโฟลเดอร์กับไฟล์ฐานข้อมูล
- เส้นทางไฟล์: ตรวจสอบเส้นทางการติดตั้ง ServBay (ค่าเริ่ม
/Applications/ServBay
) และโฟลเดอร์ฐานข้อมูลของแต่ละเวอร์ชันให้ถูกต้อง - ผู้ใช้และสิทธิ์: หลังย้ายฐานข้อมูล อย่าลืมตรวจสอบผู้ใช้, สิทธิ์, และไฟล์ config ในระบบฐานข้อมูลให้เหมาะสมกับสภาพแวดล้อมใหม่
- ฟีเจอร์สำรองข้อมูลในตัวของ ServBay: ServBay มีฟีเจอร์สำรองและกู้คืนแบบง่ายผ่าน GUI รองรับการสำรองข้อมูลการตั้งค่า, ไฟล์เว็บไซต์, ฐานข้อมูล, และ SSL certificate ทำให้สามารถใช้แทนการจัดการไฟล์ด้วยตนเองได้หากต้องการ
สรุป
ServBay จัดระเบียบโครงสร้างไฟล์สำหรับฐานข้อมูลโดยเฉพาะ ทำให้ง่ายต่อการจัดการสำหรับนักพัฒนา บทความนี้อธิบายที่เก็บไฟล์ของ MySQL, MariaDB, PostgreSQL และ Redis ใน ServBay พร้อมแนวทางใช้เครื่องมือบรรทัดคำสั่งมาตรฐานเพื่อสำรอง, กู้คืน และย้ายข้อมูล การเข้าใจและใช้งานสิ่งเหล่านี้จะช่วยให้คุณดูแลข้อมูลฐานข้อมูลในสภาพแวดล้อมพัฒนาในเครื่องได้อย่างมั่นใจและปลอดภัย อีกทั้งสามารถย้ายโครงการระหว่างสภาพแวดล้อมต่าง ๆ ได้อย่างมีประสิทธิภาพ ร่วมกับฟีเจอร์ ServBay อื่น ๆ เช่นการสำรองข้อมูลในตัว เพิ่มประสิทธิภาพและความสะดวกในการจัดการงานพัฒนาได้อย่างมาก