Làm thế nào để nhiều máy có thể dùng chung 1 database?

Hello mọi người,

Em có một câu hỏi là “làm thế nào đề nhiều máy có thể dùng chung một database”.
Em đã một vài video trên youtube về vấn đề này. Trong video họ upload database lên hosting nhưng em thấy DB host ghi là localhost. Vậy thì máy khác đâu thể kết nối với database đó được ạ.
Ai có thể giải đáp giúp em được k.

Em cảm ơn.
Ngày mới vui vẻ.

Client chỉ cần kết nối với web server thôi :slight_smile: Runtime dịch code và chạy ra kết quả, HTTP server serve lại cái đó và file tĩnh.

6 Likes

hi, db thường bị giới hạn truy cập, ví dụ chỉ giao tiếp với mạng nội bộ.

ở đây thường db chạy chung server với application nên địa chỉ host sẽ là chính nó, hay localhost.

do db bị giới hạn truy cập nên không thể tuy cập từ bên ngoài, vì vậy phải thông qua ssh, ssh giúp gửi lệnh lên server, server chạy trên đó rồi bắn kết quả sau cùng về. Nhờ đó truy cập db dưới danh nghĩa nội bộ.

db client nào cùng hỗ trợ kết nối db thông qua ssh.

6 Likes

Hiểu nôm na cái hosting là một cái máy tính (Máy AAA) có cài web server, và database (ví dụ là mySQL) cũng cài trên cái máy tính đó. Khi bạn cài đặt website lên máy tính AAA, thì kết nối từ web site đến database là trong cùng 1 máy, nên là “localhost”.

Còn máy tính của bạn ở nhà (máy BBB) hay máy ở trường (máy CCC), khi kết nối tới website của bạn trên máy AAA, thì nó không liên quan gì tới database hay localhost gì ở đây cả. Máy AAA tự xử lý hết rồi chỉ đưa thông tin cho máy BBB hay CCC xài thôi.

Trong trường hợp bạn muốn máy BBB hay CCC connect trực tiếp vô database (đuọc cài trên máy AAA) thì vẫn được. Tuy nhiên, vì lý do bảo mật, hầu hết các hosting đều chặn kiểu truy cập này (giả sử bạn bị lộ file config của web có chứa thông tin user/pass của database, thì người ta cũng không thể truy cập được vô database của bạn từ máy họ)

Nếu muốn truy cập remotely, bạn cần cấp quyền access cho IP máy muốn truy cập (trường hợp hosting xài cpanel) hay mở port/IP (trường hợp xài VPS như debian, xài marian db).

Cách hoạt động sơ sơ là vậy, bạn muốn làm gì thì google thêm theo từng trường hợp cụ thể.

6 Likes

Chỉnh lại cấu hình cho nó thôi. Các hệ quản trị database đều được thiết kế ra để “phục vụ nhiều máy” mà, trừ các kiểu database dựa trên file như MS Access thôi.

Cấu hình như thế nào thì tùy loại database mà bạn đang dùng. Ví dụ như mình đang dùng PostgreSQL thì vô sửa file: /etc/postgresql/12/main/postgresql.conf, tìm dòng:

#listen_addresses = 'localhost'

và sửa lại địa chỉ lắng nghe sao cho chấp nhận máy bên ngoài kết nối vô thôi.

Vì trong phạm vi một bài hướng dẫn, họ chỉ cho phần mềm cần database và database server nằm trên cùng một máy, nên chỉ cần để localhost là đủ.

8 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?