【centos8服务如何给服务器开发3306端口】

发布于:2025-07-05 ⋅ 阅读:(17) ⋅ 点赞:(0)

在 CentOS 8 中开放 MySQL 默认端口 3306,需要配置防火墙和 SELinux。以下是详细步骤:

1. 开放防火墙端口(Firewalld)

CentOS 8 默认使用 firewalld 管理防火墙,执行以下命令开放 3306 端口:

# 开放 TCP 3306 端口
sudo firewall-cmd --permanent --add-port=3306/tcp

# 重载防火墙规则使其生效
sudo firewall-cmd --reload

# 验证端口是否开放
sudo firewall-cmd --list-ports

输出示例

3306/tcp

2. 配置 SELinux 允许 MySQL 访问 3306 端口

若 SELinux 处于 enforcing 模式,还需配置 SELinux 策略:

# 检查 SELinux 是否允许 MySQL 使用 3306 端口
sudo semanage port -l | grep mysql

# 如果未列出 3306,添加端口(通常不需要,MySQL 默认已关联 3306)
sudo semanage port -a -t mysql_port_t -p tcp 3306

3. 验证 MySQL 是否监听 3306 端口

确保 MySQL 服务正常运行且监听 3306 端口:

# 检查 MySQL 服务状态
sudo systemctl status mysqld

# 查看端口监听情况(确认 3306 端口已监听)
sudo ss -tulpn | grep :3306

输出示例

tcp   LISTEN 0      128          0.0.0.0:3306       0.0.0.0:*    users:(("mysqld",pid=1234,fd=22))

4. 配置 MySQL 允许远程访问(可选)

默认情况下,MySQL 仅允许本地访问。若需远程连接,需修改配置文件:

# 编辑 MySQL 配置文件
sudo vi /etc/my.cnf  # 或 /etc/mysql/my.cnf

# 添加或修改以下行(注释掉 bind-address 或设置为 0.0.0.0)
bind-address = 0.0.0.0  # 允许所有 IP 访问
# 或指定特定 IP
bind-address = 192.168.1.100  # 仅允许该 IP 访问

# 重启 MySQL 服务
sudo systemctl restart mysqld

5. 验证远程连接

在另一台机器上使用 mysql 客户端测试连接:

mysql -h your_server_ip -u love -p

若遇到连接问题,可检查:

  • 服务器是否有公网 IP 且 3306 端口已在云服务商防火墙开放
  • MySQL 用户是否被授权从远程主机连接(CREATE USER 'love'@'%' ...

注意事项

  1. 安全风险:开放 3306 端口会暴露数据库,请确保:

    • 使用强密码
    • 限制允许访问的 IP(如 bind-address 设置)
    • 定期备份数据
  2. 端口冲突:若 3306 被其他服务占用,可修改 MySQL 监听端口:

    # 在 /etc/my.cnf 中添加或修改
    port = 3307
    
    # 重启 MySQL 和防火墙
    sudo systemctl restart mysqld
    sudo firewall-cmd --permanent --remove-port=3306/tcp
    sudo firewall-cmd --permanent --add-port=3307/tcp
    sudo firewall-cmd --reload
    

完成以上步骤后,MySQL 服务即可通过 3306 端口被外部访问。


网站公告

今日签到

点亮在社区的每一天
去签到