在非标准的TCP端口上运行MariaDB,默认情况下,MariaDB侦听TCP端口3306。如果想改变默认端口,就需要完成以下步骤:
(1)打开my.cnf配置文件,并添加port = num指令。
(2)在防火墙中打开指定的端口。
(3)修改在SELinux策略中定义的默认MariaDB端口。
在非标准的TCP端口上运行MariaDB这个练习有三个部分:编辑MariaDB配置文件,修改防火墙,改变SELinux端口标签。假设希望在TCP端口3307上运行MariaDB,而不是默认的3306。
(1)在/etc/my.cnf的[mysqld]部分添加port= 3307行:
[mysqld] port=3307
(2)在默认区域的防火墙配置中,允许连接到新端口:
# firewall-cmd --permanent --add-port=3307/tcp # firewall-cmd --reload
(3)在SELinux策略中为MySQL的允许端口列表添加新端口:
# semanage port -a -t mysqld_port_t -p tcp 3307
(4)现在可以显示SELinux允许MySQL和MariaDB使用的端口。在下面的命令中,确认它包含新端口:
# semanage port -l | grep mysqld mysqld_port_t tcp 3307, 1186, 3306, 63132-63164
(5)重启动MariaDB:
# systemctl restart mariadb
(6)在新端口上连接到服务器:
# mysql -u root -h 127.0.0.1-P 3307-p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 5.5.35-MariaDB MariaDB Server Copyright(c)2000, 2013, Oracle, Monty Program Ab and others. Type 'help; ' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
前面的命令连接到MariaDB服务器上,该服务器运行在指定的IP地址(- h)和端口(- P)上,作为用户root(- u),用口令(- p)标识。注意,如果指定主机连接到为“localhost”, MariaDB客户机就通过Unix套接字与本地服务器通信,而不是通过TCP连接。
(7)输入quit或exit,关闭会话。
(8)删除添加到/etc/my.cnf中的行,重启MariaDB,在默认端口上运行服务。如果不修改SELinux策略,没有考虑自定义端口,试图启动MariaDB时,就会看到以下错误:
[root@server1~]# systemctl start mariadb.service Job for mariadb.service failed. See 'systemctl status mariadb.service' and 'journalctl -xn' for details.
在/var/log/mariadb/mariadb.log文件中,也应该看到这个相应的错误:
150124 8:21:27 [ERROR] Can't start server: Bind on TCP/IP port. Got error: 13: Permission denied