Cách cho phép kết nối từ xa MySQL

Article ID: 1212
Cập nhật gần nhất: 22 Th08, 2025

Đăng nhập từ xa bị tắt theo mặc định trong MySQL để tăng cường bảo mật và ngăn chặn truy cập trái phép từ các nguồn bên ngoài.

Tuy nhiên, trong môi trường phân tán và đám mây hiện đại , việc truy cập cơ sở dữ liệu MySQL từ xa là cần thiết để thực hiện các tác vụ thường xuyên, tối ưu hóa máy chủ và theo dõi hiệu suất.

Bài viết sau HostVN sẽ giúp bạn tìm hiểu cách cấu hình máy chủ MySQL để kết nối từ xa và quản lý cơ sở dữ liệu của bạn một cách an toàn từ mọi vị trí.

Điều kiện cần có:

Truy cập vào cửa sổ đầu cuối/ dòng lệnh .
Máy chủ MySQL từ xa.
Quyền sudo hoặc root trên máy cục bộ và máy từ xa.

Kích hoạt kết nối từ xa của MySQL Server
Truy cập máy chủ MySQL từ xa và hoàn thành các bước sau để kích hoạt kết nối từ xa:

Bước 1: Chỉnh sửa tệp cấu hình MySQL
Bạn cần sửa đổi tệp cấu hình MySQL để cấu hình máy chủ MySQL từ xa lắng nghe các kết nối trên địa chỉ IP bên ngoài .

Tên và vị trí của tệp cấu hình MySQL thay đổi tùy theo bản phân phối Linux và phiên bản MySQL. Trong Ubuntu/Debian, tệp được đặt tên là mysqld.cnf , trong khi ở các bản phân phối khác, nó thường được đặt tên là my.cnf .

Các ví dụ trong hướng dẫn này được trình bày bằng Ubuntu 22.04 và MySQL 8.0.37.

1. Truy cập tệp mysqld.cnf
Sử dụng trình soạn thảo văn bản ưa thích của bạn , chẳng hạn như nano , để mở tệp cấu hình MySQL, mysqld.cnf . Nhập lệnh sau vào giao diện dòng lệnh để truy cập tệp cấu hình máy chủ MySQL:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Nếu tệp cấu hình MySQL không nằm ở vị trí mặc định, hãy thử sử dụng lệnh find của Linux để phát hiện tệp đó.

2. Thay đổi địa chỉ IP liên kết
Xác định vị trí dòng bind-address trong tệp cấu hình máy chủ MySQL. Địa chỉ IP mặc định hiện tại được đặt là 127.0.0.1 , điều này giới hạn kết nối MySQL đến máy cục bộ.

Thay thế IP hiện tại bằng địa chỉ IP của máy cần truy cập máy chủ MySQL từ xa.

Sau khi thực hiện những thay đổi này, hãy nhấn Ctrl+X , sau đó nhấn Y để xác nhận và lưu các sửa đổi, tiếp theo nhấn Enter để thoát khỏi tệp cấu hình.

3. Khởi động lại dịch vụ MySQL
Sử dụng lệnh sau để khởi động lại dịch vụ MySQL và áp dụng những thay đổi đã thực hiện vào tệp cấu hình MySQL:

sudo systemctl restart mysql

Tiếp theo, hãy điều chỉnh cài đặt tường lửa để cho phép lưu lượng truy cập vào cổng MySQL mặc định.

Bước 2: Cấu hình Tường lửa để Cho phép Kết nối MySQL từ xa
Số cổng MySQL mặc định là 3306. Nếu bạn đã cấu hình tường lửa trên máy chủ MySQL, hãy mở lưu lượng cho cổng cụ thể này . Làm theo hướng dẫn tương ứng với dịch vụ tường lửa đang hoạt động trên máy chủ.

Tùy chọn 1: Mở Cổng 3306 bằng UFW (Tường lửa đơn giản)
UFW là công cụ tường lửa mặc định trong Ubuntu. Trong cửa sổ terminal, hãy nhập lệnh sau để cho phép lưu lượng truy cập và khớp IP và cổng:

sudo ufw allow from remote_ip_address to any port 3306

Thay thế remote_ip_addressbằng IP thực tế của hệ thống cần truy cập MySQL

Hệ thống xác nhận các quy tắc đã được cập nhật thành công.

Tùy chọn 2 : Mở cổng 3306 qua Firewalld
Firewalld là công cụ tường lửa mặc định trong Fedora và các bản phân phối khác dựa trên Red Hat. Sử dụng các lệnh sau để cho phép lưu lượng truy cập đến cổng MySQL 3306:

sudo firewall-cmd --zone=public --add-service=mysql --permanent
sudo firewall-cmd --reload

Hệ thống xác nhận bạn đã mở thành công cổng 3306 trong Firewalld.

Tùy chọn 3: Mở cổng 3306 bằng iptables
Tiện ích iptables mặc định có sẵn trên hầu hết các bản phân phối Linux. Nhập lệnh sau để mở cổng MySQL 3306 cho lưu lượng không giới hạn:

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Để giới hạn quyền truy cập vào một địa chỉ IP cụ thể, hãy sử dụng lệnh sau:

sudo iptables -A INPUT -p tcp -s 133.255.137.244 --dport 3306 -j ACCEPT

Lệnh này cấp quyền truy cập vào IP 133.255.137.244 . Hãy thay thế nó bằng địa chỉ IP thực tế cho kết nối từ xa của bạn.

Sau khi cấu hình các quy tắc iptables, hãy lưu chúng để duy trì sau mỗi lần khởi động lại. Trong các bản phân phối dựa trên Ubuntu, hãy nhập các lệnh sau:

sudo netfilter-persistent save
sudo netfilter-persistent reload

Trong các bản phân phối dựa trên Fedora và Red Hat, hãy nhập:

sudo service iptables save

Bước 3: Kết nối với Máy chủ MySQL từ xa

Sử dụng lệnh sau để thiết lập kết nối với máy chủ MySQL từ xa của bạn:

mysql -u username -h mysql_server_ip -p

Thay thế usernamebằng tên người dùng MySQL của bạn và mysql_server_ipđịa chỉ IP hoặc tên máy chủ. -pTùy chọn này sẽ nhắc bạn nhập mật khẩu cho tên người dùng MySQL.

Sau khi nhập lệnh, thiết bị đầu cuối sẽ hiển thị thông báo sau:

Connection to mysql_server_ip 3306 port [tcp/mysql] succeeded!

Thông báo này xác nhận kết nối thành công tới máy chủ MySQL của bạn trên cổng 3306 .

Làm thế nào để cấp quyền truy cập từ xa vào cơ sở dữ liệu MySQL hiện có?
Truy cập máy khách MySQL trên máy chủ từ xa và thực hiện hai lệnh sau để cấp quyền truy cập từ xa cho người dùng đối với cơ sở dữ liệu hiện có :

UPDATE mysql.db SET Host='133.255.137.244' WHERE Db=yourDB;
UPDATE mysql.user SET Host='133.255.137.244' WHERE User='user1';

Thay thế 133.155.44.103 bằng địa chỉ IP thực tế mà bạn muốn cho phép truy cập từ xa, yourDBbằng tên cơ sở dữ liệu và user1bằng tên người dùng MySQL của bạn.

Làm thế nào để cấp quyền truy cập từ xa vào cơ sở dữ liệu MySQL mới?
Nhập lệnh sau vào shell MySQL của bạn để tạo cơ sở dữ liệu mới :

CREATE DATABASE yourDB;

Nhập lệnh này để cấp quyền truy cập cho người dùng từ xa vào cơ sở dữ liệu mới:

GRANT ALL PRIVILEGES ON yourDB.* TO 'user1'@'133.255.137.244' IDENTIFIED BY 'password1';

Thay thế yourDB tên cơ sở dữ liệu, user1 tên người dùng MySQL, 133.255.137.244 địa chỉ IP từ xa thực tế và password1 mật khẩu được liên kết với user1 .

Article ID: 1212
Cập nhật gần nhất: 22 Th08, 2025
Lần sửa đổi: 1
Lượt xem: 0