Mmaiqai.com
🗄️ DB Testing

Kết nối Claude Code với MySQL: QA truy vấn dữ liệu bằng câu hỏi thường thay vì SQL thuần

7 phút đọcTác giả: maiqai.com

Làm việc với DB: cách cũ vs kết nối qua Claude

Sự khác biệt thực tế khi dùng Claude như một lớp truy vấn thay vì gõ SQL thủ công:

Tiêu chíCách cũ (Workbench)Qua Claude Code + MCP
Cách đặt câu hỏiViết SQL đúng cú phápHỏi bằng tiếng Việt thường
Biết tên bảng/cột?Phải nhớ hoặc tra schema trướcClaude tự đọc schema khi kết nối
Luồng làm việcSwitch qua lại giữa 2 cửa sổHỏi thẳng trong terminal đang dùng
Phân tích kết quảTự đọc và diễn giải số liệuClaude giải thích luôn ý nghĩa
Phù hợp vớiTruy vấn phức tạp, cần kiểm soátKiểm tra nhanh, xác nhận test data
⚠️ Claude qua MCP phù hợp để đọc dữ liệu (SELECT). Không nên dùng để thay đổi dữ liệu hoặc kết nối vào DB production.

🔌 Kết nối Claude Code với MySQL trong 3 bước

Từ lúc chưa có gì đến khi hỏi được Claude về dữ liệu trong DB — toàn bộ mất khoảng 10 phút.

  1. 1
    Bước 1 — Kiểm tra package bằng cách chạy thử
    Trước khi cấu hình, xác nhận package tồn tại và chạy được trên máy bằng cách mở CMD và chạy lệnh sau. npx sẽ tự tải về nếu chưa có:
    npx -y @benborla29/mcp-server-mysql
    💡 Thấy cảnh báo 'npm warn deprecated node-domexception' là bình thường — đây chỉ là thông báo của một thư viện phụ, không ảnh hưởng đến hoạt động. Lệnh chạy xong và không báo lỗi đỏ là đạt.
  2. 2
    Bước 2 — Thêm cấu hình vào settings.json
    Mở file cấu hình toàn cục của Claude Code tại đường dẫn: C:\Users\<tên_user>\.claude\settings.json Thêm khối mcpServers vào trong file (giữ nguyên các nội dung đã có, chỉ thêm phần mới):
    {
      "mcpServers": {
        "mysql-local": {
          "command": "npx",
          "args": ["-y", "@benborla29/mcp-server-mysql"],
          "env": {
            "MYSQL_HOST": "127.0.0.1",
            "MYSQL_PORT": "3306",
            "MYSQL_USER": "root",
            "MYSQL_PASS": "",
            "MYSQL_DB": ""
          }
        }
      }
    }
    ✅ MYSQL_PASS để trống nếu bạn dùng --initialize-insecure khi cài MySQL (không đặt mật khẩu root). MYSQL_DB để trống để Claude có thể truy cập tất cả database — hoặc điền tên DB cụ thể nếu muốn giới hạn phạm vi.
  3. 3
    Bước 3 — Restart Claude Code và kiểm tra kết nối
    Đóng hẳn cửa sổ Claude Code desktop rồi mở lại — không chỉ đóng tab. Bước này bắt buộc vì Claude Code chỉ đọc cấu hình MCP một lần khi khởi động. Sau khi mở lại, vào project và thử hỏi:
    Show all databases in MySQL
    
    -- hoặc hỏi cụ thể hơn:
    Trong database test_db có những bảng nào?
    🎉 Nếu Claude liệt kê được danh sách database hoặc bảng — kết nối đã thành công. Nếu Claude báo không tìm thấy công cụ MySQL, kiểm tra lại file settings.json có đúng cú pháp JSON không (dùng jsonlint.com để kiểm tra nhanh).

🔍 3 prompt — kèm chỗ AI hay sai cần bắt

AI sinh kết quả chỉ trong vài giây — việc của bạn là kiểm lại. Mỗi prompt kèm ví dụ kết quả và 🔍 Góc soi lỗi của Tester (chỗ AI hay sai, nên xem trước khi dùng). Bấm Copy → dán vào Claude Code / ChatGPT.

1
Mục tiêu

Kiểm tra tính toàn vẹn dữ liệu sau khi chạy test

Trong database [tên_db], kiểm tra bảng orders và bảng payments. Tìm các order có status = 'completed' nhưng không có bản ghi tương ứng trong bảng payments. Nếu có, liệt kê order_id và created_at của từng trường hợp.
🔍
Góc soi lỗi của Tester

Kết quả minh họa dựa trên cấu trúc bảng trong ví dụ đầu vào. Khi chạy thật, Claude sẽ tự đọc schema của DB bạn đang kết nối — tên cột có thể khác, nhưng logic LEFT JOIN vẫn áp dụng tương tự.

2
Mục tiêu

Thống kê nhanh để xác nhận test data đã seed đúng

Trong database [tên_db], đếm số lượng bản ghi trong bảng users theo trường role. Hiển thị dạng bảng: role | số lượng. Thêm một dòng tổng cộng ở cuối.
🔍
Góc soi lỗi của Tester

Prompt này phù hợp để kiểm tra nhanh sau bước seed data — đặc biệt hữu ích trước khi chạy regression test để đảm bảo môi trường đúng. Kết quả ví dụ là minh họa theo đầu vào mô tả.

3
Mục tiêu

Tìm dữ liệu bất thường để viết bug report

Trong bảng [tên_bảng], tìm các bản ghi có giá trị bất thường: email không chứa ký tự @, số điện thoại không đủ 10 chữ số, hoặc trường created_at ở tương lai (sau ngày hôm nay). Liệt kê ID và mô tả lỗi cụ thể cho từng bản ghi.
🔍
Góc soi lỗi của Tester

Kết quả ví dụ là minh họa theo dữ liệu mô tả trong đầu vào. Claude sẽ tự sinh SQL phù hợp với cấu trúc bảng thực của bạn — kết quả thực tế phụ thuộc vào dữ liệu trong DB đang kết nối.

📌 Tóm lại

Kết nối Claude Code với MySQL không thay thế Workbench hay kỹ năng SQL — nó thêm một lớp tiện lợi cho những tác vụ kiểm tra nhanh trong quá trình test. Khi cần xác nhận một điều kiện dữ liệu cụ thể mà không muốn gián đoạn luồng làm việc, hỏi thẳng trong terminal nhanh hơn switch cửa sổ. Còn với những truy vấn phức tạp quan trọng, vẫn nên kiểm tra lại SQL được sinh ra trước khi tin vào kết quả.

Bài viết liên quan