Đôi khi, nó có thể hữu ích để kích hoạt các kết nối từ xa với MySQL. Điều này cho phép bạn kết nối trực tiếp với MySQL trên một trong các máy chủ của bạn từ một ứng dụng hoặc máy khách MySQL đang chạy trên một hệ thống khác.
Có hai cách khác nhau để truy cập MySQL từ xa:
- Sử dụng đường hầm SSH.
- Cho phép truy cập trực tiếp vào MySQL từ các hệ thống từ xa.
Kết nối với MySQL bằng SSH Tunnel
Sử dụng đường hầm SSH là tùy chọn dễ dàng và an toàn nhất để truy cập MySQL từ xa cho mục đích phát triển. Một đường hầm SSH sẽ làm cho nó trông giống như MySQL đang chạy trên hệ thống cục bộ của bạn. SSH thực hiện điều này bằng cách mở một cổng cục bộ và chuyển liền mạch tất cả thông tin liên lạc qua cổng đó thông qua MySQL đang chạy trên máy chủ của bạn.
Để tạo đường hầm SSH từ Mac hoặc Linux, bạn có thể chạy lệnh SSH dòng lệnh với -L
để cho phép chuyển tiếp cổng cục bộ.
ssh -L localhost:2000:localhost:3306 serverpilot@SERVER_IP_ADDRESS
Trong ví dụ trên, SSH sẽ mở cổng 2000 trên hệ thống cục bộ của bạn và sau đó bạn có thể giao tiếp với MySQL bằng cách kết nối với cổng cục bộ này. Ví dụ:bạn có thể kết nối bằng lệnh MySQL:
mysql --protocol=tcp --host=localhost --port=2000 --user=DB_USER_NAME -pĐừng bỏ dở --protocol =tcp hoặc MySQL có thể im lặng bỏ qua --host và --port tùy chọn.
Bạn cũng có thể tạo đường hầm SSH trên Windows bằng PuTTy, ứng dụng khách SSH phổ biến của Windows.
Cho phép truy cập trực tiếp vào MySQL từ hệ thống từ xa
Cảnh báo! Cho phép truy cập trực tiếp vào MySQL làm tăng nguy cơ máy chủ của bạn bị xâm nhập bởi những kẻ tấn công. Cảnh báo! MySQL không sử dụng các kết nối an toàn theo mặc định. Hướng dẫn sử dụng MySQL có thêm thông tin về SSL với MySQL.Bước 1:Định cấu hình MySQL để lắng nghe trên tất cả các giao diện.
Theo mặc định, MySQL chỉ lắng nghe các kết nối trên localhost , vì vậy bước đầu tiên là cấu hình lại MySQL trên máy chủ cơ sở dữ liệu của bạn để lắng nghe trên tất cả các giao diện. Để thực hiện việc này, hãy đăng nhập vào máy chủ của bạn với tư cách root .
Nếu bạn đang chạy máy chủ Ubuntu 16.04 hoặc 18.04, hãy chỉnh sửa tệp này:
/etc/mysql/mysql.conf.d/mysqld.cnf
Đối với máy chủ 14.04 hoặc 12.04, hãy chỉnh sửa tệp này:
/etc/mysql/my.cnf
Tìm dòng sau trong một trong hai tệp:
bind-address = 127.0.0.1
Thay đổi địa chỉ ràng buộc thành 0.0.0.0 :
bind-address = 0.0.0.0
Lưu tệp này và sau đó chạy lệnh sau với tên root :
sudo service mysql restart
Bước 2:Mở cổng TCP 3306 trong tường lửa của máy chủ.
Tường lửa do ServerPilot định cấu hình chặn tất cả quyền truy cập vào MySQL từ bên ngoài máy chủ của bạn. Vì vậy, bạn sẽ cần phải tùy chỉnh tường lửa của mình để cho phép truy cập vào MySQL.
Để mở quyền truy cập vào MySQL từ bên ngoài máy chủ của bạn, hãy xem bài viết của chúng tôi về cách tùy chỉnh tường lửa của bạn.
Bước bổ sung cho EC2:Cho phép cổng TCP 3306 trong các nhóm bảo mật của bạn.
Nếu đây là máy chủ EC2, bạn cũng phải cho phép cổng 3306 trong các nhóm bảo mật của máy chủ.
Định cấu hình (các) Ứng dụng của bạn để Sử dụng Máy chủ Từ xa.
Sau khi thiết lập máy chủ MySQL từ xa, bạn sẽ muốn định cấu hình (các) ứng dụng của mình để sử dụng máy chủ đó cho các giao dịch cơ sở dữ liệu. Điều này thường được thiết lập trong tệp cấu hình của ứng dụng và chúng tôi sẽ sử dụng WordPress làm ví dụ của mình.
Mở tệp wp-config.php của ứng dụng.
Trên dòng này:
define('DB_HOST', 'localhost');
Thay đổi ‘localhost’ thành địa chỉ IP của máy chủ MySQL từ xa hoặc tên máy chủ đầy đủ của bạn. Địa chỉ IP thường sẽ là lựa chọn nhanh hơn và đáng tin cậy hơn, vì nó không phụ thuộc vào độ phân giải DNS.
Lưu tệp và thoát, và bạn đã sẵn sàng! Giờ đây, bạn có thể kiểm tra ứng dụng của mình để đảm bảo rằng ứng dụng đang hoạt động chính xác.