Chuyển đến nội dung chính

Kết nối MySQL & MariaDB

TablePro cung cấp hỗ trợ đầy đủ cho MySQL 5.7+, MySQL 8.0+ và MariaDB 10.x+. Cả hai cơ sở dữ liệu đều sử dụng cùng một giao diện kết nối vì chúng chia sẻ các giao thức tương thích.

Thiết lập Nhanh

1

Mở Biểu mẫu Kết nối

Nhấp New Connection từ màn hình Chào mừng hoặc File > New Connection
2

Chọn Loại Cơ sở dữ liệu

Chọn MySQL hoặc MariaDB từ trình chọn loại
3

Nhập Thông tin Kết nối

Điền host, port, username, password và tùy chọn cơ sở dữ liệu mặc định
4

Kiểm tra và Kết nối

Nhấp Test Connection, sau đó Create

Cài đặt Kết nối

Các trường Bắt buộc

TrườngMô tảMặc định
NameĐịnh danh kết nối-
HostHostname hoặc IP của máy chủlocalhost
PortCổng máy chủ MySQL3306
UsernameNgười dùng MySQLroot
PasswordMật khẩu người dùng-

Các trường Tùy chọn

TrườngMô tả
DatabaseCơ sở dữ liệu mặc định để sử dụng sau khi kết nối
Để trống trường database cho phép bạn duyệt tất cả các cơ sở dữ liệu mà người dùng có quyền truy cập.

Ví dụ Cấu hình

Máy chủ Phát triển Local

Name:     Local MySQL
Host:     localhost
Port:     3306
Username: root
Password: (mật khẩu của bạn)
Database: (để trống)

Docker MySQL Container

Name:     Docker MySQL
Host:     localhost
Port:     3306 (hoặc cổng được ánh xạ của bạn)
Username: root
Password: (mật khẩu từ MYSQL_ROOT_PASSWORD)
Database: (để trống)

MAMP Pro

Name:     MAMP MySQL
Host:     localhost
Port:     8889 (mặc định của MAMP)
Username: root
Password: root
Database: (để trống)

Máy chủ Từ xa

Name:     Production DB
Host:     db.example.com
Port:     3306
Username: app_user
Password: (mật khẩu bảo mật)
Database: production
Đối với cơ sở dữ liệu production, hãy xem xét sử dụng SSH tunneling để kết nối an toàn.

MySQL so với MariaDB

Mặc dù TablePro sử dụng cùng một driver cho cả hai, vẫn có một số khác biệt nhỏ:
Tính năngMySQL 8.0MariaDB 10.x
Xác thực mặc địnhcaching_sha2_passwordmysql_native_password
Hỗ trợ JSONNativeTương thích
Window functions
CTEs
Nếu bạn gặp vấn đề xác thực với MySQL 8.0, hãy xem phần Khắc phục sự cố Xác thực.

Tính năng

Duyệt Cơ sở dữ liệu

Sau khi kết nối, sidebar hiển thị tất cả các cơ sở dữ liệu có thể truy cập cho người dùng của bạn:
  1. Nhấp vào tên kết nối trong sidebar
  2. Mở rộng một cơ sở dữ liệu để xem các bảng của nó
  3. Nhấp vào một bảng để xem nội dung của nó
Trình duyệt cơ sở dữ liệu

Thông tin Bảng

Đối với mỗi bảng, TablePro cung cấp:
  • Structure: Định nghĩa cột, loại và ràng buộc
  • Indexes: Tất cả chỉ mục bao gồm primary keys
  • Foreign Keys: Mối quan hệ với các bảng khác
  • DDL: Câu lệnh CREATE TABLE

Thực thi Truy vấn

Thực thi các truy vấn với hỗ trợ cú pháp MySQL đầy đủ:
-- Select với JSON
SELECT id, JSON_EXTRACT(data, '$.name') as name
FROM users
WHERE JSON_CONTAINS(roles, '"admin"');

-- Window functions
SELECT
    department,
    employee,
    salary,
    RANK() OVER (PARTITION BY department ORDER BY salary DESC) as rank
FROM employees;

-- CTEs
WITH RECURSIVE category_tree AS (
    SELECT id, name, parent_id, 0 as level
    FROM categories WHERE parent_id IS NULL
    UNION ALL
    SELECT c.id, c.name, c.parent_id, ct.level + 1
    FROM categories c
    JOIN category_tree ct ON c.parent_id = ct.id
)
SELECT * FROM category_tree;

Khắc phục sự cố

Kết nối Bị từ chối

Triệu chứng: “Connection refused” hoặc “Can’t connect to MySQL server” Nguyên nhân và Giải pháp:
  1. Máy chủ MySQL không chạy
    # Kiểm tra xem MySQL có đang chạy không
    mysqladmin ping -h localhost -u root -p
    
    # Khởi động MySQL (macOS với Homebrew)
    brew services start mysql
    
  2. Cổng sai
    • Xác minh cổng trong MySQL: SHOW VARIABLES LIKE 'port';
    • Kiểm tra file cấu hình của bạn
  3. MySQL không lắng nghe trên TCP
    • Kiểm tra skip-networking không được đặt trong my.cnf
    • Đảm bảo bind-address bao gồm IP máy khách của bạn

Truy cập Bị từ chối

Triệu chứng: “Access denied for user ‘xxx’@‘localhost’” Giải pháp:
  1. Xác minh username và password
  2. Kiểm tra quyền của người dùng:
    SHOW GRANTS FOR 'username'@'localhost';
    
  3. Cấp quyền cần thiết:
    GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
    FLUSH PRIVILEGES;
    

Xác thực MySQL 8.0

MySQL 8.0 sử dụng caching_sha2_password theo mặc định, có thể gây ra vấn đề kết nối. Tùy chọn 1: Sử dụng native password cho người dùng cụ thể
ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'password';
Tùy chọn 2: Thay đổi phương thức xác thực mặc định
# Trong my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password

Kết nối SSL/TLS

TablePro hỗ trợ mã hóa SSL/TLS cho kết nối MySQL và MariaDB. Cấu hình SSL trong phần SSL/TLS của biểu mẫu kết nối.
Chế độ SSLHành vi MySQL
DisabledSSL bị tắt rõ ràng
PreferredSử dụng SSL nếu server hỗ trợ, quay lại không mã hóa nếu không
RequiredBắt buộc mã hóa SSL (MYSQL_OPT_SSL_ENFORCE)
Verify CABắt buộc SSL và xác minh chứng chỉ server với CA
Verify IdentityBắt buộc SSL, xác minh CA và xác thực hostname server
Đối với chế độ Verify CAVerify Identity, cung cấp đường dẫn đến file chứng chỉ CA. Tùy chọn, bạn cũng có thể cung cấp file chứng chỉ client và khóa để xác thực TLS hai chiều.
Hầu hết nhà cung cấp MySQL trên cloud (AWS RDS, Google Cloud SQL, Azure) yêu cầu SSL. Sử dụng chế độ Verify CA với chứng chỉ CA của nhà cung cấp để bảo mật tốt nhất.
Nếu bạn không cần SSL nhưng muốn kết nối được mã hóa, SSH tunneling là phương án thay thế mã hóa toàn bộ traffic qua đường hầm SSH.

Mẹo Hiệu suất

Tập Kết quả Lớn

Đối với các bảng có hàng triệu hàng:
  1. Sử dụng LIMIT trong các truy vấn của bạn
  2. Bật phân trang trong cài đặt data grid
  3. Tạo các chỉ mục phù hợp cho các truy vấn phổ biến

Truy vấn Phức tạp

  1. Sử dụng EXPLAIN để phân tích kế hoạch truy vấn:
    EXPLAIN SELECT * FROM users WHERE email LIKE '%@example.com';
    
  2. Theo dõi thời gian thực thi truy vấn trong bảng kết quả

Bộ ký tự

TablePro mặc định sử dụng UTF-8 (utf8mb4) cho các kết nối MySQL, đảm bảo xử lý đúng:
  • Ký tự quốc tế
  • Emoji
  • Ký hiệu đặc biệt
Nếu bạn gặp vấn đề về encoding, hãy xác minh bộ ký tự của bảng/cột:
SHOW CREATE TABLE table_name;

Các bước tiếp theo