Hướng dẫn Quản lý và Di chuyển File Cơ sở Dữ liệu trên ServBay
ServBay là một môi trường phát triển Web local mạnh mẽ, tích hợp nhiều hệ quản trị cơ sở dữ liệu phổ biến, đồng thời quản lý file dữ liệu của chúng theo một cấu trúc chuẩn hóa. Nắm rõ cách ServBay lưu trữ file cơ sở dữ liệu mặc định sẽ giúp các lập trình viên an toàn khi sao lưu, phục hồi và di chuyển dữ liệu.
Tài liệu này sẽ trình bày chi tiết về cấu trúc lưu trữ file cơ sở dữ liệu trên ServBay, cũng như cung cấp hướng dẫn sử dụng các công cụ dòng lệnh tiêu chuẩn để quản lý file dữ liệu và di chuyển giữa các môi trường khác nhau.
TIP
ServBay hỗ trợ tính năng sao lưu và phục hồi dữ liệu, cho phép bạn sao lưu tự động hoặc thủ công các cơ sở dữ liệu MySQL, MariaDB, PostgreSQL. Xem thêm thông tin tại Sao lưu & Phục hồi.
Cấu trúc Thư mục Mặc định Lưu Trữ File Cơ sở Dữ liệu của ServBay
Để đơn giản hóa việc quản lý và tách biệt dữ liệu của các phiên bản cơ sở dữ liệu khác nhau, ServBay lưu toàn bộ file dữ liệu vào thư mục /Applications/ServBay/db
. Trong đó, các loại cơ sở dữ liệu sẽ có thư mục riêng, tiếp theo được phân loại theo phiên bản chính (major version) bên trong từng thư mục.
Ví dụ cấu trúc thư mục /Applications/ServBay/db
như sau:
/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
Giải thích Cấu trúc Thư mục
/Applications/ServBay/db
: Thư mục chính lưu trữ toàn bộ file cơ sở dữ liệu của ServBay.mysql
: Lưu dữ liệu MySQL, mỗi thư mục con phân theo phiên bản chính (ví dụ:8.0
,8.1
).mariadb
: Lưu dữ liệu MariaDB, thư mục con cũng phân theo phiên bản chính (ví dụ:10.11
,11.3
).postgresql
: Lưu dữ liệu PostgreSQL, từng phiên bản chính có thư mục riêng (như15
,16
).redis
: Lưu file dữ liệu bền vững của Redis, thông thường là filedump.rdb
.
Cấu trúc này giúp bạn có thể cài đặt và chạy nhiều phiên bản chính của cùng một loại cơ sở dữ liệu trên ServBay mà dữ liệu hoàn toàn tách biệt, không bị ảnh hưởng lẫn nhau.
Quản lý File Cơ sở Dữ liệu
Trong quá trình phát triển local, bạn sẽ thường xuyên cần sao lưu, phục hồi hoặc di chuyển dữ liệu cơ sở dữ liệu. Dưới đây là hướng dẫn thao tác bằng các công cụ dòng lệnh tiêu chuẩn. Lưu ý: Nên thực hiện trong môi trường terminal do ServBay cung cấp hoặc đảm bảo biến môi trường đã cấu hình chính xác để có thể gọi trực tiếp các client và tool tương ứng.
Sao lưu Cơ sở Dữ liệu
Sao lưu thường xuyên là bước quan trọng để bảo vệ dữ liệu. Dưới đây là cách thực hiện sao lưu cho từng loại cơ sở dữ liệu trong ServBay.
Sao lưu MySQL
Sử dụng công cụ mysqldump
là phương pháp chuẩn để sao lưu cơ sở dữ liệu MySQL.
bash
# Chuyển sang môi trường terminal của ServBay, hoặc đảm bảo PATH có thư mục bin của ServBay
# Ví dụ: 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
: Thay bằng tên user của bạn.your_database
: Thay bằng tên database cần sao lưu./Applications/ServBay/backup/your_database.sql
: Đường dẫn và tên file backup bạn muốn lưu. Nên lưu file backup ở ngoài thư mục của ServBay, ví dụ trong thư mục Home của bạn.
Sao lưu MariaDB
Cách sao lưu MariaDB giống hệt MySQL, cũng dùng công cụ mysqldump
.
bash
# Chuyển sang môi trường terminal của ServBay, hoặc đảm bảo PATH có thư mục bin của ServBay
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- Thông số sử dụng như trên.
Sao lưu PostgreSQL
Với PostgreSQL, sử dụng công cụ pg_dump
. Trong môi trường ServBay, PostgreSQL thường kết nối qua Unix Domain Socket với đường dẫn mặc định /Applications/ServBay/tmp
, nên phải bổ sung -h /Applications/ServBay/tmp
vào lệnh.
bash
# Chuyển sang môi trường terminal của ServBay, hoặc đảm bảo PATH đã thêm bin của 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
- Tham số kết nối: Chỉ định cách kết nối PostgreSQL.
- macOS:
-h /Applications/ServBay/tmp
(đường dẫn socket) - Windows:
-h localhost -p 5432
(kết nối TCP)
- macOS:
-U your_username
: User của database.-d your_database
: Database cần sao lưu.-F c
: Định dạng file backup là custom (khuyến nghị).-b
: Bao gồm cả các đối tượng lớn (blobs).-v
: Hiện chi tiết tiến trình.-f /Applications/ServBay/backup/your_database.dump
: Nơi lưu file backup.
Sao lưu Redis
Sao lưu Redis thường chỉ đơn giản là copy file dump.rdb
.
bash
# Chuyển sang môi trường terminal của ServBay
# Đảm bảo Redis đang chạy, hoặc đã thiết lập auto-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
: Đường dẫn file dữ liệu gốc của Redis./Applications/ServBay/backup/dump.rdb
: Đường dẫn file backup, có thể thay đổi theo ý bạn.
Phục hồi Cơ sở Dữ liệu
Khi bạn mất dữ liệu hoặc cần khôi phục trạng thái trước đó, có thể dùng file backup để phục hồi.
Phục hồi MySQL
Dùng công cụ dòng lệnh mysql
để phục hồi file backup.
bash
# Chuyển sang môi trường terminal của ServBay
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
your_username
: Tên user database của bạn.your_database
: Tên database muốn phục hồi (thường cần tạo trước)./Applications/ServBay/backup/your_database.sql
: Đường dẫn file backup.
Phục hồi MariaDB
Phục hồi MariaDB thực hiện hoàn toàn tương tự MySQL, dùng tool mysql
.
bash
# Chuyển sang môi trường terminal của ServBay
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- Các thông số như với MySQL.
Phục hồi PostgreSQL
Dùng công cụ pg_restore
để phục hồi file backup dạng custom. Cũng cần chỉ định đúng đường dẫn socket -h /Applications/ServBay/tmp
.
bash
# Chuyển sang môi trường terminal của 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
- Tham số kết nối:
- macOS:
-h /Applications/ServBay/tmp
(Unix Domain Socket) - Windows:
-h localhost -p 5432
(TCP)
- macOS:
-U your_username
: User database.-d your_database
: Database cần phục hồi (nên tạo sẵn).-v
: Hiện thông tin chi tiết.- Đường dẫn file backup:
- macOS:
/Applications/ServBay/backup/your_database.dump
- Windows:
C:\ServBay\backup\your_database.dump
- macOS:
Phục hồi Redis
Phục hồi Redis là copy file backup dump.rdb
về lại đúng thư mục dữ liệu. Lưu ý: Nên dừng dịch vụ Redis trước khi thực hiện thao tác này.
bash
# Chuyển sang môi trường terminal của ServBay
# Dừng dịch vụ Redis trong ServBay
# Copy file backup
cp /Applications/ServBay/backup/dump.rdb /Applications/ServBay/db/redis/dump.rdb
# Khởi động lại dịch vụ Redis trong ServBay
1
2
3
4
5
2
3
4
5
/Applications/ServBay/backup/dump.rdb
: Đường dẫn file backup./Applications/ServBay/db/redis/dump.rdb
: File dữ liệu gốc của Redis.
Di chuyển Cơ sở Dữ liệu
Di chuyển cơ sở dữ liệu nghĩa là chuyển dữ liệu giữa các môi trường (từ một instance ServBay khác, máy chủ remote, hoặc local khác). Thường gồm xuất dữ liệu ở nguồn, rồi nhập liệu ở đích.
Di chuyển MySQL
Di chuyển MySQL là tình huống thường gặp trong phát triển.
Xuất dữ liệu tại môi trường nguồn:
bash# Thực hiện trong terminal của môi trường nguồn mysqldump -u your_source_username -p your_database > your_database.sql
1
2your_source_username
: Tài khoản database nguồn.your_database
: Tên database cần di chuyển.your_database.sql
: File SQL xuất ra.
Chuyển file SQL sang môi trường đích: Dùng
scp
hoặc công cụ khác để chuyểnyour_database.sql
vào chỗ ServBay ở môi trường mới (ví dụ/Applications/ServBay/backup/
).Tạo database mới ở môi trường ServBay đích:
bash# Thực thi trong terminal của ServBay đích mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2your_target_username
: User trong ServBay đích.your_database
: Database cần tạo (nên trùng tên với ở nguồn).
Nhập data vào ServBay môi trường đích:
bash# Chạy trong terminal của ServBay đích mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2/path/to/your_database.sql
: Đường dẫn thật của file SQL tại môi trường đích.
Di chuyển MariaDB
Di chuyển MariaDB hoàn toàn giống MySQL vì dùng chung tool và định dạng file.
- Xuất database tại nguồn:bash
# Terminal môi trường nguồn mysqldump -u your_source_username -p your_database > your_database.sql
1
2 - Chuyển file SQL qua môi trường đích.
- Tạo database mới ở ServBay đích:bash
# Terminal ServBay đích mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - Nhập data vào database mới:bash
# Terminal ServBay đích mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2
Di chuyển PostgreSQL
Di chuyển PostgreSQL dùng các tool pg_dump
và pg_restore
. Cần lưu ý đường dẫn socket trong ServBay.
Xuất data ở nguồn:
bash# Terminal nguồn # Nếu nguồn là ServBay pg_dump -h /Applications/ServBay/tmp -U your_source_username -d your_database -F c -b -v -f your_database.dump # Nếu nguồn là hệ thống khác, chỉnh lại tham số kết nối cho phù hợp
1
2
3
4your_source_username
: User ở môi trường nguồn.your_database
: Database cần chuyển.your_database.dump
: Tên file backup xuất ra.
Chuyển backup sang ServBay ở môi trường mới: Dùng
scp
hoặc tool khác để gửiyour_database.dump
đến môi trường ServBay đích.Tạo database mới ở môi trường ServBay đích:
bash# Mở terminal ServBay đích # Kết nối vào database postgres để tạo database mới psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: User ServBay đích.your_database
: Database cần tạo mới.
Nhập lại dữ liệu vào database mới:
bash# Terminal ServBay đích 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
: Đường dẫn file backup trên môi trường mới.
Di chuyển Redis
Di chuyển Redis chủ yếu là copy file dump.rdb
.
Lấy file
dump.rdb
ở nguồn:bash# Terminal nguồn # Đảm bảo Redis đã dừng hoặc chờ BGSAVE hoàn thành cp /path/to/source/redis/dump.rdb ./dump.rdb
1
2
3Chuyển file sang thư mục dữ liệu Redis trên ServBay đích:
bash# Thực hiện ở nguồn hoặc server trung gian scp ./dump.rdb your_target_server:/Applications/ServBay/db/redis/dump.rdb
1
2your_target_server
: Địa chỉ hoặc tên host ServBay đích.- Lưu ý: Trước khi copy đè vào
/Applications/ServBay/db/redis/
trên ServBay đích, hãy chắc chắn dịch vụ Redis đã dừng.
Khởi động lại Redis trên ServBay đích: Sau khi khởi động, Redis sẽ tự động nạp file
dump.rdb
mới.
Lưu ý
- Dừng dịch vụ: Trước khi copy hoặc di chuyển trực tiếp file dữ liệu cơ sở dữ liệu (đặc biệt với MySQL/MariaDB/PostgreSQL), nhất định phải dừng dịch vụ qua GUI hoặc command line của ServBay. Nếu thao tác trên file khi dịch vụ vẫn chạy, dễ gây mất mát hoặc lỗi dữ liệu. Redis cũng vậy, cần dừng khi chuyển file
dump.rdb
. - Quyền truy cập: Đảm bảo user thực hiện thao tác có đủ quyền để đọc, ghi hoặc sửa file/thư mục dữ liệu.
- Đường dẫn file: Kiểm tra kỹ đường dẫn cài đặt ServBay (mặc định là
/Applications/ServBay
) và phần thư mục con cho từng loại, phiên bản cơ sở dữ liệu. - Người dùng & phân quyền: Sau di chuyển, cần kiểm tra lại user, quyền và các file cấu hình trong database để đảm bảo phù hợp với môi trường mới.
- Sao lưu nội bộ của ServBay: ServBay còn hỗ trợ sao lưu/phục hồi qua GUI, bao gồm cả cấu hình, file web, database lẫn SSL. Có thể dùng thay thế hoặc kết hợp với thao tác thủ công ở trên.
Kết luận
Nhờ cấu trúc lưu trữ chuẩn hóa, ServBay giúp lập trình viên dễ dàng quản lý file dữ liệu cho các hệ quản trị MySQL, MariaDB, PostgreSQL, Redis. Tài liệu này đã trình bày chi tiết vị trí file dữ liệu và cách dùng công cụ dòng lệnh để sao lưu, phục hồi, di chuyển giữa các môi trường. Thành thạo các thao tác này giúp bạn bảo vệ dữ liệu trong môi trường phát triển local, di chuyển project nhanh chóng khi cần. Hãy tận dụng thêm các tiện ích có sẵn của ServBay (như backup nội bộ) để tối ưu hiệu quả quản lý và phát triển dự án.