如何在Linux中更改默认的MySQL / MariaDB端口

在本指南中,我们将学习如何更改MySQL / MariaDB数据库在CentOS 7和基于Debian的Linux发行版中绑定的默认端口。

在本指南中,我们将学习如何更改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端口

在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数据库服务器的端口配置是否已成功应用,请发出netstatss命令,并通过grep命令过滤结果,以便轻松识别新的MySQL端口。

# ss -tlpn | grep mysql
# netstat -tlpn | grep mysql
验证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端口变量

在远程连接到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

最后,一旦您更改了MySQL / MariaDB数据库服务器端口,您需要更新您的分发防火墙规则,以允许传入连接到新的TCP端口,以便远程客户端可以成功连接到数据库。