在本指南中,我們將學習如何更改MySQL / MariaDB數據庫在CentOS 7和基於Debian的Linux發行版中綁定的默認端口。 MySQL數據庫服務器在Linux和Unix下運行的默認端口是3306 / TCP 。
為了在Linux中更改默認的MySQL / MariaDB數據庫端口,請通過執行以下命令打開MySQL服務器配置文件進行編輯。
# vi /etc/my.cnf.d/server.cnf [On CentOS/RHEL] # vi /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu]
搜索行統計以[mysqld]
開始,並在[mysqld]
語句下放置以下端口指令,如以下文件摘錄所示。 相應地更換端口變量。
[mysqld] port = 12345
在添加新的MySQL / MariaDB端口后,保存並關閉配置文件,並在CentOS 7下安裝以下軟件包,以便應用所需的SELinux規則以允許數據庫綁定到新端口上。
# yum install policycoreutils-python
接下來,添加下面的SELinux規則,將MySQL套接字綁定到新端口上,並通過發出以下命令重新啟動數據庫守護程序以應用更改。 再次,替換MySQL端口變量以匹配您自己的端口號。
--------------- 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]
為了驗證MySQL / MariaDB數據庫服務器的端口配置是否已成功應用,請發出netstat或ss命令,並通過grep命令過濾結果,以便輕松識別新的MySQL端口。
# ss -tlpn | grep mysql # netstat -tlpn | grep mysql
你也可以用root賬戶登錄到MySQL數據庫來顯示新的MySQL端口,然后發出下面的命令。 但是,請注意,本地主機上所有與MySQL的連接都是通過MySQL unix域套接字進行的,而不是通過TCP套接字進行的。 但是,如果使用-P
標志命令行遠程連接到MySQL數據庫,則必須明確指定TCP端口號。
# mysql -h localhost -u root -p -P 12345 MariaDB [(none)]> show variables like 'port';
在遠程連接到MySQL數據庫的情況下,root用戶必須顯式配置為允許來自所有網絡的傳入連接,或只是一個IP地址,通過在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
通過發出以下命令,通過新端口上的命令行客戶端遠程登錄到MySQL服務器。
# mysql -h 192.168.1.159 -P 12345 -u root -p