Máy chủ giữ dữ liệu; chương trình khách gửi yêu cầu
**MySQL Server** là hệ quản trị CSDL: nó quản lí CSDL, xử lí truy vấn và kiểm quyền. Chương trình **`mysql`** là công cụ khách dùng dòng lệnh để kết nối và gửi câu SQL. **HeidiSQL** là phần mềm khách dùng giao diện đồ họa; nó cũng kết nối tới máy chủ để xem cấu trúc, dữ liệu và gửi truy vấn. Chỉ mở HeidiSQL khi chưa có máy chủ hoặc tệp CSDL phù hợp thì chưa có dữ liệu nào để xem.
Trong hình SGK, cửa sổ dòng lệnh và HeidiSQL đều kết nối đến một máy chủ CSDL âm nhạc. Hình 17.2 và 17.5 ghi máy chủ **MariaDB 10.6.4**; đó là phần mềm cùng họ giao thức trong ảnh minh họa, không phải chứng cứ hình ấy đang chạy MySQL Server. Bài thực hành của sách chọn MySQL làm hệ QTCSDL và HeidiSQL làm khách đồ họa.
Một yêu cầu đi qua những đâu?
Giả sử CSDL hư cấu `nhac_hoc_tap` có bảng `BanNhac` với hai hàng K01 và K02. Người dùng mở HeidiSQL, dùng **tài khoản thực hành được cấp** để kết nối tới MySQL Server rồi yêu cầu xem BanNhac. HeidiSQL chuyển yêu cầu; MySQL Server kiểm quyền đọc bảng, lấy dữ liệu và trả hai hàng; HeidiSQL hiển thị chúng.
Có thể gửi cùng ý “xem BanNhac” bằng chương trình `mysql` qua dòng lệnh. Điểm khác là **cách nhập và nhìn kết quả**, không phải hai bản CSDL độc lập. Quyền của tài khoản vẫn do máy chủ kiểm. Tài khoản `root` có quyền rất rộng, nên chỉ người quản lí dùng khi thiết lập; người học dùng tài khoản thực hành với quyền cần thiết. Không ghi mật khẩu vào bài hoặc chia sẻ một tài khoản quản trị cho cả lớp.
Bài luyện
Thành phần nào quản lí bảng BanNhac và kiểm quyền truy vấn trong ví dụ?
Hệ quản trị CSDL xử lí yêu cầu và kiểm quyền.
`mysql` chỉ gửi câu lệnh tới máy chủ.
HeidiSQL là công cụ khách gửi yêu cầu.
Trình điều khiển giúp kết nối, không thay máy chủ kiểm quyền.
Lời giải
MySQL Server giữ CSDL và quyết định tài khoản có được đọc bảng hay không; chương trình khách hiển thị kết quả trả về.
Bài luyện
Muốn nhập câu SQL qua cửa sổ dòng lệnh như Hình 17.1 của SGK, dùng chương trình nào?
Server xử lí truy vấn ở phía máy chủ, không phải cửa sổ khách.
HeidiSQL dùng giao diện đồ họa.
`mysql` là chương trình khách dòng lệnh.
Trình quản lí tệp không là công cụ gửi câu SQL.
Lời giải
SGK mở chương trình khách `mysql` trong cửa sổ lệnh, rồi nhập SQL để gửi tới MySQL Server.
Bài luyện
HeidiSQL đã kết nối tới MySQL. Khi yêu cầu xem BanNhac, điều gì xảy ra?
HeidiSQL dùng máy chủ để truy vấn CSDL MySQL.
Đó là mạch khách–máy chủ của thao tác đọc.
Quyền phải được cấp ở máy chủ, không tự sinh khi mở thẻ.
Có kết nối vẫn có thể bị từ chối truy vấn thiếu quyền.
Lời giải
HeidiSQL là giao diện gửi yêu cầu đọc. MySQL Server kiểm quyền của tài khoản, truy xuất BanNhac và trả dữ liệu để HeidiSQL hiển thị.
Đang học