Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thay đổi cổng mặc định MySQL / MariaDB cơ sở dữ liệu liên kết trong CentOS 7 và Debian các bản phân phối dựa trên Linux. Cổng mặc định mà máy chủ cơ sở dữ liệu MySQL đang chạy trong Linux và Unix là 3306 / TCP .
Để thay đổi MySQL / MariaDB mặc định cổng cơ sở dữ liệu trong Linux, mở tệp cấu hình máy chủ MySQL để chỉnh sửa bằng cách ra lệnh dưới đây.
# vi /etc/my.cnf.d/server.cnf [On CentOS/RHEL] # vi /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu]
Tìm kiếm thống kê dòng bắt đầu bằng [mysqld]
và đặt lệnh cổng sau trong [mysqld]
, như được hiển thị trong phần trích dẫn tệp bên dưới. Thay thế biến cổng cho phù hợp.
[mysqld] port = 12345
Sau khi bạn đã thêm MySQL / MariaDB mới cổng, lưu và đóng tệp cấu hình cũng như cài đặt gói sau trong CentOS 7 để áp dụng SELinux bắt buộc quy tắc cho phép cơ sở dữ liệu liên kết trên cổng mới.
# yum install policycoreutils-python
Tiếp theo, thêm SELinux bên dưới quy tắc để ràng buộc ổ cắm MySQL trên cổng mới và khởi động lại daemon cơ sở dữ liệu để áp dụng các thay đổi, bằng cách đưa ra các lệnh sau. Một lần nữa, hãy thay thế biến cổng MySQL để khớp với số cổng của riêng bạn.
--------------- On CentOS/RHEL --------------- # semanage port -a -t mysqld_port_t -p tcp 12345 # systemctl restart mariadb --------------- On Debian/Ubuntu --------------- # systemctl restart mysql [On Debian/Ubuntu]
Để xác minh xem cấu hình cổng cho MySQL / MariaDB máy chủ cơ sở dữ liệu đã được áp dụng thành công, hãy phát hành lệnh netstat hoặc ss và lọc kết quả thông qua lệnh grep để dễ dàng xác định cổng MySQL mới.
# ss -tlpn | grep mysql # netstat -tlpn | grep mysql
Bạn cũng có thể hiển thị cổng MySQL mới bằng cách đăng nhập vào cơ sở dữ liệu MySQL bằng tài khoản root và đưa ra lệnh dưới đây. Tuy nhiên, hãy lưu ý rằng tất cả các kết nối đến MySQL trên localhost đều được thực hiện thông qua ổ cắm tên miền MySQL unix, không phải qua ổ cắm TCP. Nhưng số cổng TCP phải được chỉ định rõ ràng trong trường hợp kết nối từ xa dòng lệnh với cơ sở dữ liệu MySQL bằng -P
cờ.
# mysql -h localhost -u root -p -P 12345 MariaDB [(none)]> show variables like 'port';
Trong trường hợp kết nối từ xa với cơ sở dữ liệu MySQL, người dùng root phải được định cấu hình rõ ràng để cho phép các kết nối đến tạo thành tất cả các mạng hoặc chỉ một địa chỉ IP, bằng cách đưa ra lệnh dưới đây trong bảng điều khiển MySQL:
# mysql -u root -p MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.1.159' identified by 'strongpass'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit
Đăng nhập từ xa vào máy chủ MySQL thông qua ứng dụng khách dòng lệnh trên cổng mới bằng cách đưa ra lệnh dưới đây.
# mysql -h 192.168.1.159 -P 12345 -u root -p
Cuối cùng, khi bạn đã thay đổi MySQL / MariaDB cổng máy chủ cơ sở dữ liệu, bạn cần cập nhật các quy tắc Tường lửa phân phối của mình để cho phép các kết nối đến với cổng TCP mới để các máy khách từ xa có thể kết nối thành công với cơ sở dữ liệu.