Do đó, cho phép kết nối từ xa đến cơ sở dữ liệu MySQL của bạn từ một địa chỉ IP cụ thể là quy trình gồm ba bước Show
Trước tiên, chúng ta sẽ cần thiết lập dịch vụ MySQL để có thể truy cập được từ các máy từ xa bằng cách định cấu hình địa chỉ liên kết công khai trong tệp cấu hình MySQL Thứ hai, chúng tôi sẽ cần cho phép truy cập từ xa thông qua tường lửa hệ thống của mình. Theo mặc định, MySQL chạy trên cổng 3306, vì vậy các kết nối đến cổng này sẽ cần được phép thông qua và không có vấn đề gì khi chỉ cho phép các kết nối đó từ các địa chỉ IP mà chúng tôi chỉ định Thứ ba, chúng tôi sẽ cần tạo một người dùng mới hoặc chỉnh sửa một người dùng hiện có để làm cho nó có thể truy cập được từ một địa chỉ IP cụ thể Định cấu hình địa chỉ liên kết MySQL
Cho phép truy cập từ xa thông qua tường lửaGiả sử bạn đang sử dụng cổng 3306 cho máy chủ MySQL của mình, chúng tôi sẽ cần cho phép điều này thông qua tường lửa hệ thống. Lệnh bạn cần thực thi sẽ phụ thuộc vào bản phân phối bạn đang sử dụng. Tham khảo danh sách bên dưới hoặc điều chỉnh lệnh nếu cần để tuân thủ cú pháp tường lửa của hệ thống của riêng bạn Trong các ví dụ bên dưới, chúng tôi đang cho phép truy cập từ xa từ địa chỉ IP [mysqld] bind-address = 0.0.0.02. Chỉ cần thả địa chỉ IP của riêng bạn vào vị trí mà bạn muốn cho phép truy cập từ xa Trên các hệ thống Ubuntu và các hệ thống khác sử dụng ufw (tường lửa không phức tạp) $ sudo ufw allow from 10.150.1.1 to any port 3306 Trên Red Hat, CentOS, Fedora và các hệ thống phái sinh sử dụng tường lửa $ sudo firewall-cmd --zone=public --add-source=10.150.1.1 --permanent $ sudo firewall-cmd --zone=public --add-service=mysql --permanent $ sudo firewall-cmd --reload Và lệnh cũ [mysqld] bind-address = 0.0.0.03 sẽ hoạt động trên mọi hệ thống $ sudo iptables -A INPUT -p tcp -s 10.150.1.1 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT Cho phép kết nối từ xa tới một người dùng cụ thể từ một IP cụ thểGiờ đây, dịch vụ MySQL có thể chấp nhận các kết nối đến và tường lửa của chúng tôi sẽ cho phép một IP cụ thể đi qua, chúng tôi chỉ cần định cấu hình người dùng của mình để chấp nhận các kết nối từ xa từ IP đó
Thats tất cả để có nó. Sau khi cấp cho người dùng của bạn quyền truy cập vào một hoặc nhiều cơ sở dữ liệu, bạn sẽ có thể sử dụng thông tin đăng nhập tài khoản để truy cập cơ sở dữ liệu từ xa từ IP mà bạn đã chỉ định Trong hầu hết các trường hợp, máy chủ MySQL và ứng dụng chính được lưu trữ trên cùng một máy. Do đó, MySQL chỉ lắng nghe các kết nối từ máy cục bộ. Tuy nhiên, với sự gia tăng của các hệ thống phân tán nơi ứng dụng và cơ sở dữ liệu được lưu trữ trên các máy chủ riêng biệt, việc nghe trên localhost không phải là lý tưởng lắm Nếu những trường hợp như vậy xảy ra, các nhà phát triển cần đảm bảo rằng MySQL lắng nghe các kết nối từ xa hoặc đơn giản là các kết nối bên ngoài máy cục bộ. Bạn có thể làm điều này theo hai cách
Trong hướng dẫn này, chúng ta sẽ xem xét cách chỉnh sửa tệp cấu hình MySQL để thay đổi địa chỉ liên kết của máy chủ MySQL điều kiện tiên quyếtTrước khi chúng tôi bắt đầu, đảm bảo bạn có
Khi bạn đã đáp ứng các yêu cầu trên, chúng tôi có thể tiến hành Bước 1 – Chỉnh sửa cấu hình MySQLBước đầu tiên để sửa đổi địa chỉ liên kết của máy chủ MySQL là chỉnh sửa tệp cấu hình Theo mặc định, tệp cấu hình MySQL nằm trong /etc/mysql/mysql. conf. d/mysqld. conf cho Ubuntu 20. 10 Vị trí của tệp cấu hình có thể thay đổi tùy thuộc vào máy chủ MySQL được cài đặt và bản phân phối Linux sudo vim / vv /mysql/mysql.conf.d/ mysqld. cnf Trong khi tệp đang mở, hãy tìm kiếm mục nhập có nội dung là (địa chỉ liên kết) và thay đổi giá trị thành địa chỉ IP mà máy chủ sẽ lắng nghe Theo mặc định, giá trị được đặt thành localhost Trong ví dụ của tôi, tôi sẽ thay đổi địa chỉ liên kết thành tất cả, điều này cho phép máy chủ MySQL nghe trên tất cả các địa chỉ IPv4 địa chỉ liên kết = 0. 0. 0. 0 GHI CHÚ. Nếu bạn sử dụng máy chủ MySQL phiên bản 8. 0 trở lên, mục nhập địa chỉ liên kết có thể không khả dụng. Trong trường hợp đó, bạn có thể thêm nó vào phần [mysqld] Khi bạn hài lòng với các thay đổi đối với tệp cấu hình, hãy lưu các thay đổi và đóng trình chỉnh sửa Bước 2 – Khởi động lại MySQLĐể áp dụng các thay đổi cho các tệp cấu hình, yêu cầu bạn khởi động lại dịch vụ máy chủ MySQL. Bạn có thể làm điều này bằng cách sử dụng systemd như sudo systemctl khởi động lại mysql. dịch vụ Bước 3 – Cho phép tường lửaTheo mặc định, MySQL lắng nghe trên 3306, đôi khi tường lửa của bạn có thể chặn. Để cho phép cổng máy chủ MySQL, hãy sử dụng lệnh bảng IP như sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT Bước 4 – Kiểm tra kết nốiKhi tất cả các cấu hình đã hoàn tất, bạn có thể kiểm tra kết nối với máy chủ MySQL mysql -u root -h [mysql_remote/-ip] -p Nếu bạn đã cấu hình máy chủ đúng cách, bạn sẽ nhận được lời nhắc mật khẩu cho người dùng cụ thể Phần kết luậnĐối với hướng dẫn nhanh này, chúng tôi đã xem xét cách thay đổi địa chỉ liên kết MySQL để cho phép máy chủ MySQL lắng nghe các kết nối bên ngoài máy cục bộ. Điều này có thể rất hữu ích khi làm việc với các hệ thống phân tán Làm cách nào để cho phép tất cả các địa chỉ IP trong MySQL?Cách cho phép kết nối từ xa với MySQL . Bước 1. Chỉnh sửa tệp cấu hình MySQL Bước 2. Thiết lập tường lửa để cho phép kết nối MySQL từ xa. lựa chọn 1. UFW (Tường lửa không phức tạp) Tùy chọn 2. Tường lửaD. Tùy chọn 3. Mở Port 3306 bằng iptables Bước 3. Kết nối với máy chủ MySQL từ xa Làm cách nào để thêm người dùng từ xa MySQL?Cách tạo người dùng để truy cập từ xa. Khi ở bảng điều khiển MySQL, hãy tạo người dùng mới và thêm TÙY CHỌN CẤP (cung cấp cho người dùng khả năng cấp đặc quyền cho người dùng khác) bằng lệnh. TẠO NGƯỜI DÙNG 'root'@'%' ĐƯỢC XÁC ĐỊNH BỞI 'MẬT KHẨU' VỚI TÙY CHỌN CẤP; MẬT KHẨU là một mật khẩu rất mạnh/duy nhất.
Tôi có thể lưu trữ địa chỉ IP trong cơ sở dữ liệu không?Chúng tôi có thể lưu trữ địa chỉ IP với sự trợ giúp của INT không dấu . Trong khi sử dụng INSERT, hãy thêm INET_ATON() và với SELECT, hãy thêm INET_NTOA(). Địa chỉ IP ở định dạng chấm.
Làm cách nào để đặt máy chủ trong MySQL?Để chỉ định máy chủ cho mysql, hãy sử dụng MYSQL_HOST Trên Windows, để chỉ định tên người dùng MySQL, hãy sử dụng USER |