Hướng dẫn xử lý lỗi không kết nối database từ xa

Bài viết này sẽ hướng dẫn nhận biết và xử lý khi không kết nối được tới cơ sở dữ liệu từ xa.

1. Những lỗi cơ bản

Có rất nhiều trường hợp dẫn đến lỗi không thể kết nối tới cơ sở dữ liệu từ xa được và đây là một số lỗi cơ bản:

– Không thể kết nối tới dịch vụ MySQL.

– Người dùng không có quyền truy cập vào hệ thống.

– Cấu hình sai thông số kết nối tới máy chủ.

– Server chặn port của dịch vụ MySQL.

– Không phân full quyền cho tài khoản user và gắn IP kết nối.

– Chưa cấu hình trong file my.cnf của MySQL.

2. Cách kiểm tra lỗi

Thông thường để nhận biết việc không thể kết nối tới cơ sở dữ liệu từ xa được, bạn có thể kiểm tra bằng một số cách cơ bản như sau:

– Sử dụng công cụ Command Prompt trên máy tính cá nhân bằng cách như sau: Start => Run => gõ cmd nhấn Enter để ra giao diện Command Prompt, sau đó tiến hành gõ lệnh để kiểm tra kết nối tới port của dịch vụ MySQL, mặc định thông thường dịch vụ MySQL sẽ lắng nghe trên port 3306, sử dụng lệnh: telnet IP 3306 (ví dụ: bạn kết nối tới Server có IP là 192.168.0.1 thì sẽ như sau: telnet 192.168.0.1 3306).

– Truy cập vào website để xem việc kết nối tới cơ sở dữ liệu từ xa, nếu kết nối không thành công sẽ có những thông báo lỗi như:

  • Can’t connect to MySQL server.
  • Access denied for user ‘xxx@192.168.0.1’
  • ..v…v

– Kiểm tra tình trạng dịch vụ MySQL.

– Kiểm tra iptables có chặn port của dịch vụ MySQL không.

– Kiểm tra lại file cấu hình của dịch vụ MySQL, theo từng hệ điều hành:

  • Debian Linux: /etc/mysql/my.cnf.
  • Red Hat/ Fedora/ Centos: /etc/my.cnf.
  • FreeBSD: /var/db/mysql/my.cnf

– Kiểm tra việc phân quyền user và IP được phép truy cập từ xa.

3. Cách xử lý các trường hợp không thể kết nối tới cơ sở dữ liệu từ xa

– Kiểm tra tình trạng của dịch vụ Mysql bằng lệnh: # service mysql status. Nếu dịch vụ Mysql hiện tại đang stop, bạn có thể start lại dịch vụ.

– Kiểm tra iptables có chặn port của dịch vụ mysql hay không bằng lệnh: # netstat – nltp | grep mysql. Nếu sau khi chạy lệnh này nhưng không tìm thấy mysql có thể dịch vụ iptables của máy chủ đã chặn port của dịch vụ. Khách hàng có thể sử dụng lệnh sau để enable port của dịch vụ MySQL: iptables –A INPUT –i eth0 –p tcp –destination-port 3306 –j ACCEPT.

– Đảm bảo trong file cấu hình MySQL /etc/mysql đã cho phép việc kết nối tới cơ sở dữ liệu từ xa:

  • bind-address = IP ( IP của máy chủ cần kết nối)
  • port = 3306

– Bạn phải đảm bảo trong lúc tạo user cần phải phân full quyền và gán IP cần remote vào cơ sở dữ liệu. Để có thể tạo một database có user full quyền và gán IP remote, bạn có thể làm theo các bước sau đây:

  • mysql -u root (đăng nhập vào MySQL bằng tài khoản root).
  • create database databasename; (tạo database tên là databasename, nếu bạn cung cấp tên cụ thể thì điền tên vào)
  • grant all privileges on databasename.* to ‘dbuser’@’IP’ identified by ‘password’; (tạo user dbuser với mật khẩu là password và gán full quyền trên database databasename và IP là địa chỉ IP cần remote)
  • flush privileges;
  • exit

– Kiểm tra các thông số kết nối tới Server MySQL như: database, user, password một cách chính xác.

Chúc bạn thành công!

Đánh giá bài viết
14/06/2023
Was this article helpful?
Đánh giá
Đánh giá bài viết
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận