Làm cách nào để thêm địa chỉ IP vào MySQL?

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

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

  1. Chúng tôi sẽ bắt đầu bằng cách mở tệp
    [mysqld]
    bind-address = 10.1.1.1
    
    5. Với quyền root, hãy mở cái này bằng nano hoặc trình soạn thảo văn bản yêu thích của bạn.
    $ sudo nano /etc/mysql/mysql.cnf
    
  2. Tìm cài đặt có nội dung
    [mysqld]
    bind-address = 10.1.1.1
    
    6 bên dưới phần
    [mysqld]
    bind-address = 10.1.1.1
    
    7. Theo mặc định, địa chỉ này hiện được định cấu hình thành địa chỉ loopback
    [mysqld]
    bind-address = 10.1.1.1
    
    4. Xóa địa chỉ đó và đặt địa chỉ IP công cộng của máy chủ của bạn vào vị trí của nó. Chúng tôi sẽ chỉ sử dụng
    [mysqld]
    bind-address = 10.1.1.1
    
    9 vì lợi ích của ví dụ.
    [mysqld]
    bind-address = 10.1.1.1
    

    Nếu muốn, thay vào đó, bạn có thể sử dụng

    [mysqld]
    bind-address = 0.0.0.0
    
    0 làm địa chỉ liên kết của mình, đây là ký tự đại diện và sẽ liên kết dịch vụ với tất cả các giao diện có thể truy cập. Điều này không được khuyến nghị, nhưng có thể tốt cho việc khắc phục sự cố nếu bạn gặp sự cố sau này

    [mysqld]
    bind-address = 0.0.0.0
    
  3. Sau khi bạn đã thực hiện thay đổi đó, hãy lưu các thay đổi của bạn vào tệp và thoát khỏi tệp. Sau đó, bạn sẽ cần khởi động lại dịch vụ MySQL để các thay đổi có hiệu lực.
    $ sudo systemctl restart mysql
    

    Trên một số distro, dịch vụ có thể được gọi là

    [mysqld]
    bind-address = 0.0.0.0
    
    1 thay thế

    $ sudo systemctl restart mysqld
    

Cho phép truy cập từ xa thông qua tường lửa

Giả 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.0
2. 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.0
3 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 đó

  1. Bắt đầu bằng cách mở MySQL bằng tài khoản root


    $ sudo mysql
    

    Hoặc, trên một số cấu hình, bạn có thể được yêu cầu nhập lệnh sau và cung cấp mật khẩu gốc của mình

    $ mysql -u root -p
    
  2. Nếu bạn đã tạo một người dùng và bạn cần định cấu hình người dùng đó để có thể truy cập được từ một địa chỉ IP từ xa, chúng ta có thể sử dụng lệnh MySQL
    [mysqld]
    bind-address = 0.0.0.0
    
    4. Chúng tôi sẽ làm cho người dùng
    [mysqld]
    bind-address = 0.0.0.0
    
    5 của chúng tôi có thể truy cập được từ địa chỉ IP
    [mysqld]
    bind-address = 0.0.0.0
    
    2 trong lệnh ví dụ bên dưới, nhưng điều chỉnh điều này khi cần thiết cho cấu hình của riêng bạn.
    [mysqld]
    bind-address = 10.1.1.1
    
    0

    Hoặc, nếu bạn tạo người dùng này lần đầu tiên, chúng tôi sẽ sử dụng lệnh

    [mysqld]
    bind-address = 0.0.0.0
    
    7. Đảm bảo thay thế tên người dùng, địa chỉ IP và mật khẩu sau bằng của riêng bạn

    [mysqld]
    bind-address = 10.1.1.1
    
    1

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

  • Thay đổi địa chỉ liên kết trong tệp cấu hình MySQL hoặc
  • Truy cập máy chủ MySQL qua đường hầm SSH

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ết

Trước khi chúng tôi bắt đầu, đảm bảo bạn có

  • Đã cài đặt máy chủ MySQL hoặc MariaDB
  • Người dùng root hoặc tài khoản có đặc quyền sudo

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 MySQL

Bướ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ửa

Theo 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ối

Khi 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