Hướng dẫn cấu hình cho phép kết nối MySQL từ xa (Remote Access) trên Linux

Views: 16 25/03/2026 10:41
Hướng dẫn cấu hình cho phép kết nối MySQL từ xa (Remote Access) trên Linux

Việc thiết lập MySQL để có thể truy cập từ xa đòi hỏi bạn phải thực hiện qua 3 giai đoạn chính: Cấu hình hệ thống, Phân quyền người dùng và Thiết lập tường lửa.

Bước 1: Thay đổi địa chỉ ràng buộc (Bind Address)

Mặc định, MySQL chỉ lắng nghe các kết nối từ chính nó (localhost). Bạn cần thay đổi điều này trong file cấu hình.

1.Mở file cấu hình MySQL (thường nằm ở một trong các đường dẫn sau tùy bản phân phối):

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf #(Ubuntu/Debian)
sudo nano /etc/my.cnf #(CentOS/RHEL)

2. Tìm dòng có nội dung:

bind-address = 127.0.0.1

3. Sửa thành:

bind-address = 0.0.0.0 #(Giá trị 0.0.0.0 cho phép MySQL lắng nghe trên tất cả các địa chỉ IP của server).

4. Lưu file và khởi động lại dịch vụ MySQL:

sudo systemctl restart mysql

Bước 2: Phân quyền cho người dùng truy cập từ xa

Ngay cả khi MySQL đã mở cổng, bạn vẫn cần cấp quyền cho một tài khoản cụ thể được phép đăng nhập từ một IP bên ngoài.

1. Đăng nhập vào MySQL với quyền root:

sudo mysql -u root -p

2.Chạy lệnh sau để cấp quyền (Thay user_name, password và remote_ip bằng thông tin của bạn): 

CREATE USER 'user_name'@'remote_ip' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'user_name'@'remote_ip';
FLUSH PRIVILEGES;

 Lưu ý: Nếu bạn muốn cho phép truy cập từ mọi nơi (không khuyến khích vì bảo mật), hãy thay remote_ip bằng dấu %.

Bước 3: Mở cổng tường lửa (Firewall)

MySQL sử dụng cổng mặc định là 3306. Bạn phải mở cổng này để các gói tin từ bên ngoài có thể đi vào.

  • Đối với UFW (Ubuntu/Debian):

sudo ufw allow 3306/tcp
  • Đối với Firewalld (CentOS/RHEL):

sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload

Bước 4: Kiểm tra kết nối

Từ máy tính cá nhân, bạn có thể kiểm tra nhanh bằng lệnh:

mysql -u user_name -h địa_chi_ip_server -p

Để đảm bảo an toàn cho dữ liệu, bạn chỉ nên cấp quyền cho các IP tĩnh cụ thể thay vì dùng dấu %. Ngoài ra, hãy đảm bảo mật khẩu người dùng đủ mạnh để tránh các cuộc tấn công brute-force.

Chúc các bạn thành công.

kết nối mysql từ xa cho phép remote mysql linux mở port 3306 cấu hình bind-address mysql quản lý mysql từ xa