Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết nối với MySQL từ xa

Đây là một hướng dẫn nâng cao. Chúng tôi không thể cung cấp bất kỳ hỗ trợ nào cho quá trình này cũng như không thể giúp giải quyết bất kỳ vấn đề nào do quá trình này gây ra. Đảm bảo sao lưu toàn bộ máy chủ trước khi tiếp tục!

Đô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:

  1. Sử dụng đường hầm SSH.
  2. 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 --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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào sử dụng STRAIGHT_JOIN với MySQL

  2. Truy vấn UNION với mẫu bản ghi hoạt động của trình mã hóa

  3. Sự khác biệt về tháng giữa các ngày trong MySQL

  4. Hàm MySQL - FOUND_ROWS () cho Tổng số hàng bị ảnh hưởng

  5. Lỗi kết hợp bất hợp pháp của lỗi đối chiếu trong MySql