网站搜索

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


在本指南中,我们将学习如何更改基于 CentOS 7Debian 的 Linux 发行版中 MySQL/MariaDB 数据库绑定的默认端口。 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] 开头的行 stat,并将以下端口指令放在 [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 数据库,必须通过在 MySQL 控制台中发出以下命令来显式配置 root 用户,以允许来自所有网络或仅 IP 地址的传入连接:

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/MariaDB 数据库服务器端口后,您需要更新分发防火墙规则以允许传入连接到新的 TCP 端口,以便远程客户端可以成功连接到数据库。