服务时间:8:30-18:00

首页 >linux教程

在非标准的TCP端口上运行MariaDB

发布时间:2023-03-01 12:20 字数:1587字 阅读:104

在非标准的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