在本指南中,我们将学习如何更改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
在CentOS和Ubuntu上更改MySQL端口
在添加新的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
验证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端口变量
在远程连接到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
在端口上远程登录到MySQL
最后,一旦您更改了MySQL / MariaDB数据库服务器端口,您需要更新您的分发防火墙规则,以允许传入连接到新的TCP端口,以便远程客户端可以成功连接到数据库。