Để kết nối từ một máy khách với MySQL DB, dữ liệu phải trải qua tối đa 5 cấp độ xác thực. Đây là trường hợp chung khi máy khách và máy chủ không ở trên cùng một mạng và kết nối an toàn không được sử dụng:
Trước tiên, hãy đảm bảo rằng MySQL đang sử dụng bind-address
khác với localhost
vì vậy nó sử dụng một giao diện chứ không chỉ các kết nối cục bộ.
Ở mỗi cấp, các quy tắc / quyền của tường lửa phải cho phép kết nối đi qua. Lưu ý rằng máy có thể và thường có IP bên trong khác với bên ngoài. Nguyên tắc cơ bản là:
Hầu hết thời gian, tường lửa được cấu hình đúng cách. Phần cuối cùng thường thiếu máy chủ MySQL GRANT
quyền nhập vào DB
cho người dùng bên ngoài. Cú pháp cuối cùng là:
Thường có dạng:
GRANT ALL ON <DB>.* TO '<external_user>'@'<external_ip>' IDENTIFIED BY 'external_password';