Giới Thiệu ProxySQL
ProxySQL là một giải pháp trung gian mã nguồn mở được viết bằng C++ dành cho MySQL, hỗ trợ các chức năng như:
- Quản lý và giám sát kết nối đến MySQL
- Cân bằng tải kết nối
- Đảm bảo tính khả dụng cao
- Phân tách luồng đọc/ghi
- Phân mảnh dữ liệu dựa trên quy tắc định tuyến
ProxySQL tương thích với giao thức MySQL và sử dụng SQLite3 để lưu trữ cấu hình nội bộ. Nó có thể được truy vấn như một cơ sở dữ liệu MySQL nhưng có một số hạn chế về tính tương thích với các công cụ quản lý cơ sở dữ liệu.
Hướng Dẫn Cài Đặt
Phương pháp 1: Cài đặt từ repository
# Cài đặt các gói phụ trợ
apt-get install -y --no-install-recommends lsb-release wget apt-transport-https ca-certificates gnupg
# Thêm khóa và repository
wget -O - 'https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/repo_pub_key' | apt-key add -
echo deb https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/$(lsb_release -sc)/ ./ | tee /etc/apt/sources.list.d/proxysql.list
# Cập nhật và cài đặt
apt-get update
apt-get install proxysql
Phương pháp 2: Cài đặt từ file .deb
# Tải về và cài đặt
wget https://github.com/sysown/proxysql/releases/download/v2.5.4/proxysql_2.5.4-ubuntu22_amd64.deb
sudo dpkg -i proxysql_2.5.4-ubuntu22_amd64.deb
Kiểm Tra Cài Đặt
# Kiểm tra phiên bản
proxysql --version
# Khởi động dịch vụ
service proxysql start
# Cài đặt MySQL client
apt install mysql-client-core-8.0
# Kết nối vào ProxySQL
mysql -uadmin -padmin -h127.0.0.1 -P6032 --prompt='ProxySQL> '
Cấu Hình Chi Tiết
3 lớp cấu hình trong ProxySQL:
- Runtime: Bộ nhớ đang chạy, chứa cấu hình hiệu lực
- Memory: Cấu hình trong SQLite3 (bảng main), cần tải vào runtime để có hiệu lực
- Disk: Phiên bản lưu trữ bền vững của cấu hình
Các lệnh đồng bộ hóa:
# Tải cấu hình từ memory vào runtime
load mysql servers to runtime;
# Lưu cấu hình từ memory xuống disk
save mysql servers to disk;
Các Bảng Cấu Hình Chính
| Bảng | Mô Tả | Lệnh Đồng Bộ |
|---|---|---|
| mysql_servers | Quản lý danh sách máy chủ MySQL backend | load mysql servers to runtime; |
| mysql_users | Chứa thông tin tài khoản người dùng | load mysql users to runtime; |
| mysql_query_rules | Quy tắc định tuyến truy vấn | load mysql query rules to runtime; |
Tham Số Cấu Hình Quan Trọng
admin-admin_credentials: Tài khoản quản trị (mặc định: admin:admin)mysql-interfaces: Địa chỉ lắng nghe kết nối (mặc định: 0.0.0.0:6033)mysql-monitor_username: Tài khoản giám sát MySQL backendmysql-threads: Số luồng xử lý kết nối (mặc định: 4)