Chuyển đến nội dung chính
Kết nối cơ sở dữ liệu MySQL của bạn để Tony (Database Engineer) có thể phân tích truy vấn, tối ưu hiệu suất và giám sát sức khỏe cơ sở dữ liệu.

Nền tảng được hỗ trợ

Nền tảngHỗ trợ
MySQL tự host5.7, 8.0, 8.1+
MariaDB10.x
AWS RDS MySQLTất cả phiên bản
AWS Aurora MySQLTất cả phiên bản
Google Cloud SQLTất cả phiên bản MySQL
Azure Database for MySQLFlexible Server

Điều kiện tiên quyết

  • Một instance MySQL có thể tiếp cận từ CloudThinker qua mạng.
  • Quyền admin hoặc root để tạo người dùng riêng và cấp đặc quyền.
  • Performance Schema được bật (mặc định trong MySQL 5.7+; xác minh trước khi kết nối).

Thiết lập

1

Kết nối với tư cách root

Kết nối tới MySQL với tư cách root hoặc admin:
mysql -h your-host -u root -p
2

Tạo người dùng chỉ đọc

Tạo người dùng CloudThinker:
CREATE USER 'cloudthinker_readonly'@'%' IDENTIFIED BY 'your-secure-password';
3

Cấp quyền đọc

Cấp đặc quyền SELECT và giám sát:
GRANT SELECT ON *.* TO 'cloudthinker_readonly'@'%';
GRANT SHOW DATABASES ON *.* TO 'cloudthinker_readonly'@'%';
GRANT PROCESS ON *.* TO 'cloudthinker_readonly'@'%';
4

Cấp quyền truy cập Performance Schema

Bắt buộc để phân tích truy vấn:
GRANT SELECT ON performance_schema.* TO 'cloudthinker_readonly'@'%';
FLUSH PRIVILEGES;
5

Xác minh Performance Schema được bật

SHOW VARIABLES LIKE 'performance_schema';
-- Should return: ON
Nếu bị tắt, thêm vào my.cnf và khởi động lại:
[mysqld]
performance_schema = ON
6

Cấu hình truy cập mạng

Đảm bảo CloudThinker có thể tiếp cận cơ sở dữ liệu:
  • Thêm IP CloudThinker vào security group hoặc firewall
  • Với RDS: bật public access hoặc dùng VPC peering
7

Thêm kết nối trong CloudThinker

Điều hướng đến Connections → MySQL và nhập:
  • Host: hostname hoặc IP cơ sở dữ liệu
  • Port: cổng cơ sở dữ liệu (mặc định: 3306)
  • Database: tên cơ sở dữ liệu
  • Username: cloudthinker_readonly
  • Password: mật khẩu bạn đặt ở trên
  • SSL: bật (khuyến nghị)
Nhấn Connect. CloudThinker hiển thị trạng thái Connected khi thành công.

Chi tiết kết nối

TrườngMô tảMặc định
HostHostname hoặc IP cơ sở dữ liệu
PortCổng MySQL3306
DatabaseTên cơ sở dữ liệu
UsernameNgười dùng riêng, ví dụ: cloudthinker_readonly
PasswordMật khẩu người dùng
SSLBật mã hóa SSL/TLSBật
Connection timeoutGiây chờ kết nối10
Read timeoutThời gian chờ kết quả truy vấn tối đa tính bằng giây30
Định dạng connection string:
mysql://cloudthinker_readonly:your-secure-password@your-host:3306/database-name

Quyền bắt buộc

Tối thiểu

GRANT SELECT ON your_database.* TO 'cloudthinker_readonly'@'%';
GRANT PROCESS ON *.* TO 'cloudthinker_readonly'@'%';

Khuyến nghị (phân tích toàn diện)

-- All of the above, plus:
GRANT SELECT ON performance_schema.* TO 'cloudthinker_readonly'@'%';
GRANT SELECT ON mysql.* TO 'cloudthinker_readonly'@'%';
GRANT REPLICATION CLIENT ON *.* TO 'cloudthinker_readonly'@'%';
Bắt đầu với các grant tối thiểu. Thêm performance_schemaREPLICATION CLIENT để mở khóa dữ liệu slow query và giám sát replication.

Khả năng của agent

Sau khi kết nối, Tony có thể:
Khả năngMô tả
Phân tích truy vấnXác định slow query từ slow query log và Performance Schema
Khuyến nghị indexTìm index còn thiếu, xác định index dư thừa
Metrics hiệu suấtGiám sát kết nối, buffer pool và query cache
Thống kê bảngPhân tích kích thước bảng, phân mảnh và trạng thái engine
Giám sát replicationKiểm tra trạng thái replica, lag và lỗi

Xác minh kết nối

@tony #report check MySQL connection health and show current active sessions

Ví dụ prompt

@tony #report analyze slow queries on the production MySQL instance
@tony #recommend find missing indexes for high-frequency queries
@tony #dashboard show buffer pool usage and connection statistics

Khắc phục sự cố

  • Xác minh host và port chính xác
  • Kiểm tra security group hoặc firewall cho phép IP CloudThinker
  • Với RDS: đảm bảo “Publicly accessible” được bật hoặc dùng VPC peering
  • Xác nhận MySQL đang lắng nghe trên interface đúng (bind-address trong my.cnf)
  • Xác minh username và password chính xác
  • Kiểm tra người dùng có đúng host specification ('user'@'%' so với 'user'@'localhost')
  • Đảm bảo lệnh GRANT đã được thực hiện sau FLUSH PRIVILEGES
  • Kiểm tra bằng: SHOW VARIABLES LIKE 'performance_schema';
  • Bật trong my.cnf và khởi động lại MySQL
  • Với RDS: sửa parameter group và reboot instance
  • Bật slow query log: SET GLOBAL slow_query_log = 'ON';
  • Đặt ngưỡng: SET GLOBAL long_query_time = 1;
  • Với RDS: sửa parameter group

Bảo mật

  • Quyền tối thiểu — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
  • Chỉ đọc theo mặc định — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
  • Xoay vòng thông tin xác thực — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
  • Thu hồi khi bàn giao — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.
  • Bắt buộc SSL — luôn bật SSL để mã hóa dữ liệu truyền tải.
  • Grant tối thiểu — chỉ cấp SELECT cho người dùng CloudThinker; không bao giờ cấp quyền ghi.

Liên quan

Tony Agent

Agent tối ưu cơ sở dữ liệu
https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/postgresql.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=8bb2ac033d0a2ccbef51154a76e1e819

Kết nối PostgreSQL

Thiết lập tương tự cho cơ sở dữ liệu PostgreSQL