TiDB
TiDB dùng hướng dẫn MySQL bên dưới. Điểm khác:
- Cổng mặc định là 4000. Chế độ SSL giống MySQL (mặc định
required). - Không có DirectQuery: bảng chỉ được nạp vào Data Table (Import).
- Không có SSH tunnel: dùng Cloud và cho phép các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê), hoặc On-premises (qua Gateway).
- Fresco BI không đặt phiên chỉ đọc trên TiDB, nên chính tài khoản phải chỉ đọc: chỉ cấp
SELECTvàSHOW VIEWnhư ở Bước 1. - Hỗ trợ từ TiDB 7.5. Mỗi lần nạp đọc từ một snapshot nhất quán.
- Truy vấn đang chạy chỉ bị dừng bằng
KILLkhienable_global_killbật; nếu không, Fresco BI đóng kết nối của chính nó.
Kết nối database MySQL với Fresco BI. Fresco BI đọc bảng và view bằng một phiên chỉ đọc, rồi nạp vào Data Table (Import) hoặc truy vấn trực tiếp (DirectQuery).
| Tính năng | Hỗ trợ |
|---|---|
| Import | Có |
| DirectQuery | Có |
| SSL/TLS | preferred, required (mặc định), verify_ca, verify_identity |
| SSH tunnel | Có |
| Cloud | Có |
| On-premises (qua Gateway) | Có |
Điều kiện cần
Phần tiêu đề “Điều kiện cần”- Máy chủ MySQL nhận kết nối TCP ở cổng của nó (mặc định
3306). - Một tài khoản quản trị chạy được
CREATE USERvàGRANT. - Tên database cần đọc.
- Nên bật SSL trên máy chủ. Fresco BI cần TLS 1.2 trở lên.
Bước 1: Tạo tài khoản chỉ đọc
Phần tiêu đề “Bước 1: Tạo tài khoản chỉ đọc”Tạo một tài khoản riêng chỉ có quyền đọc. Phần host ('%' bên dưới) nên hẹp nhất có thể: mỗi IP của Fresco BI một dòng, hoặc IP của máy bastion hay máy Gateway.
CREATE USER 'fresco_reader'@'%' IDENTIFIED BY '<strong-password>';GRANT SELECT, SHOW VIEW ON <database>.* TO 'fresco_reader'@'%';Quyền trên <database>.* áp dụng luôn cho các bảng tạo sau này trong database đó, nên không cần bước riêng cho bảng mới. Lặp lại GRANT cho từng database bạn muốn duyệt. Fresco BI cũng mở mỗi phiên với transaction_read_only = ON, nên không bao giờ ghi kể cả khi tài khoản có quyền ghi.
Bắt buộc TLS cho tài khoản này (nên làm):
ALTER USER 'fresco_reader'@'%' REQUIRE SSL;Bước 2: Cho phép truy cập mạng
Phần tiêu đề “Bước 2: Cho phép truy cập mạng”Chọn một trong các cách:
- Cloud (database mở ra internet). Cho phép kết nối vào từ các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê) ở cổng MySQL. Trên AWS RDS, thêm inbound rule TCP 3306 cho từng địa chỉ vào security group của instance. Trên Google Cloud SQL hoặc Azure, thêm các địa chỉ này vào authorized networks hoặc firewall rule. Phần host của tài khoản MySQL cũng phải khớp các địa chỉ này.
- SSH tunnel. Nếu database chỉ mở cho một máy bastion, giữ Cloud và bật SSH tunnel trong form (Bước 3). Database chỉ cần nhận kết nối từ bastion.
- On-premises (qua Gateway). Nếu database nằm trong mạng nội bộ, chọn On-premises (qua Gateway) trong form. Khi chọn, khung này chuyển sang hướng dẫn Gateway.
Bước 3: Điền form
Phần tiêu đề “Bước 3: Điền form”- Kiểu kết nối: Cloud hoặc On-premises (qua Gateway). Với On-premises, chọn Cụm gateway.
- Tên hiển thị: tên nguồn hiện trong Fresco BI.
- Máy chủ: tên DNS hoặc IP public của máy chủ, ví dụ
mydb.abc123.us-east-1.rds.amazonaws.com. - Cổng: điền sẵn
3306; đổi nếu máy chủ nghe ở cổng khác. - Database: database mà phiên mở ra. Bạn vẫn duyệt được mọi database khác mà tài khoản nhìn thấy.
- Tài khoản:
fresco_reader. - Mật khẩu: mật khẩu ở Bước 1. Được lưu mã hóa và không hiện lại.
- Chế độ SSL: xem bảng bên dưới. Nên giữ
requiredtrở lên. - Chứng chỉ CA (PEM): chỉ hiện với
verify_cavàverify_identity. Dán CA của bạn (với RDS là bộ CA của AWS RDS); để trống thì dùng kho chứng chỉ hệ thống. - Kết nối qua SSH tunnel (bastion): chỉ với Cloud. Điền Máy chủ SSH, Cổng SSH (mặc định
22), Tài khoản SSH và Khóa riêng SSH (OpenSSH hoặc PEM) (Ed25519, hoặc RSA từ 3072 bit), cùng Mật khẩu của khóa (nếu có). Lần kiểm tra đầu tiên hiện khóa máy chủ của bastion: so với vân tay do quản trị bastion cung cấp, bấm Tin khóa này, rồi kiểm tra lại.
Bấm Kiểm tra kết nối, rồi Lưu.
Chế độ SSL
Phần tiêu đề “Chế độ SSL”| Chế độ | Ý nghĩa |
|---|---|
preferred |
Thử SSL; máy chủ không có SSL thì kết nối không mã hóa. |
required (mặc định) |
Luôn SSL. Không kiểm tra CA và tên máy chủ. |
verify_ca |
Luôn SSL. Kiểm tra chuỗi chứng chỉ, không kiểm tra tên máy chủ. |
verify_identity |
Luôn SSL. Kiểm tra chuỗi chứng chỉ và tên máy chủ. An toàn nhất. |
Ô Chứng chỉ CA (PEM) hiện với verify_ca và verify_identity. Khi không có TLS, Fresco BI không gửi mật khẩu qua các cơ chế clear-text hoặc public key, nên tài khoản MySQL 8 dùng caching_sha2_password có thể thất bại với preferred trên máy chủ không bật SSL.
Xử lý sự cố
Phần tiêu đề “Xử lý sự cố”- Máy chủ từ chối tài khoản hoặc mật khẩu. Kiểm tra mật khẩu, và phần host của tài khoản có khớp địa chỉ Fresco BI kết nối từ đó không (MySQL từ chối host không được phép với cùng lỗi này).
- Tài khoản MySQL này cần kết nối SSL để gửi mật khẩu. Chọn chế độ SSL required trở lên. Bật SSL trên máy chủ và chọn
required,verify_cahoặcverify_identity. - Máy chủ từ chối kết nối ở cổng này: database không lắng nghe ở cổng đó hoặc firewall từ chối. Kiểm tra cổng và MySQL có nghe trên interface public không (
bind-address). - Máy chủ không phản hồi kịp. Thường do firewall chặn im lặng hoặc sai máy chủ, cổng. Cho phép các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê) trong security group hoặc firewall.
- Địa chỉ máy chủ thuộc dải bị chặn (nội bộ, loopback hoặc metadata). Database trong mạng nội bộ cần kết nối On-premises qua Gateway. Dùng tên máy chủ public, SSH tunnel, hoặc On-premises (qua Gateway).
- Máy chủ không hỗ trợ SSL nhưng chế độ SSL đã chọn bắt buộc mã hóa. Bật SSL trên máy chủ hoặc chọn chế độ không bắt buộc. Nên bật SSL trên MySQL thay vì hạ chế độ.
- Chứng chỉ máy chủ không do CA tin cậy ký. Dán đúng chứng chỉ CA vào ô Chứng chỉ CA. Dán CA đã ký chứng chỉ máy chủ (hoặc chứng chỉ tự ký của máy chủ).
- Chứng chỉ máy chủ không cấp cho tên máy chủ đã nhập. Nhập đúng tên trong chứng chỉ hoặc chọn chế độ chỉ kiểm tra CA. Nhập host đúng như trong chứng chỉ, hoặc dùng
verify_ca. - Tài khoản không có quyền đọc đối tượng này. Chạy lệnh
GRANT SELECT, SHOW VIEWở Bước 1 cho database đó.

