Nếu bạn muốn kích hoạt Remote access MySQL từ xa, thì có thể áp dụng theo các bước sau đây:

Thay đổi cấu hình MySQL

Mặc định MySQL sẽ disable tính năng remote từ xa, bạn cần enable lên bằng cách mở file cấu hình MySQL và điều chỉnh như sau:

vi /etc/my.cnf

Comment những dòng sau:

bind-address = 127.0.0.1
skip-networking

Thành:

# bind-address = 127.0.0.1
# skip-networking

Khởi động lại MySQL:

service mysql restart

Phân quyền remote access MySQL

Về mặc định thì MySQL chỉ được phân quyền access từ local mà thôi, bạn cần update thêm một vài bước để có thể kết nối từ bên ngoài:

Chạy lệnh bên dưới để cho phép truy cập từ tất cả các máy

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Hoặc chạy lệnh như bên dưới để cấp quyền truy cập từ IP cụ thể:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Thay thế 1.2.3.4 bằng IP của mình. Có thể chạy lệnh trên nhiều lần để CẤP quyền truy cập từ nhiều IP.
Bạn có thể chỉ định USERNAME & PASSWORD riêng để truy cập từ xa.

Cuối cùng, bạn cần chạy lệnh sau:

mysql> FLUSH PRIVILEGES;
mysql> exit

Mở port MySQL (3306) trên firewall

Đôi khi bạn cần mở thủ công port MySQL để thiết lập kết nối, nếu bước 2 phía trên không thành công thì bạn có thể chạy lệnh sau:

iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

Kiểm tra kết nối từ xa

Dùng Navicat (Windows) hoặc bạn có thể kiểm tra bằng lệnh sau trên Linux:

mysql -h HOST -u USERNAME -pPASSWORD

Thay “HOST” bằng IP của máy chủ bạn muốn truy cập, thay username và password tương ứng.

Nếu bạn đã truy cập vào được MySQL, bạn nên chạy lệnh “show databases;” để kiểm tra xem bạn đã có quyền access từ máy bạn hay chưa nhé! Chúc các bạn thành công!