1. 为什么需要修改MySQL默认端口?
MySQL默认使用3306端口,这在生产环境中往往成为安全隐患的首要目标。黑客们通常会使用自动化工具扫描全网开放的3306端口,一旦发现就会尝试暴力破解。我曾在一次安全审计中发现,一台未修改默认端口的MySQL服务器在24小时内遭受了超过5万次登录尝试。
修改默认端口能显著降低这种自动化攻击的风险,相当于给你的数据库服务加了一道隐形门。但要注意,这绝不是唯一的安全措施,必须配合强密码、IP白名单等其他策略使用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 修改前的准备工作
2.1 确认当前MySQL运行状态
首先通过systemctl检查MySQL服务状态:
bash复制systemctl status mysqld
如果服务正在运行,需要先记录当前的端口号:
bash复制mysql -u root -p -e "SHOW GLOBAL VARIABLES LIKE 'port';"
2.2 备份关键配置文件
CentOS下MySQL的主要配置文件是/etc/my.cnf,修改前务必备份:
bash复制cp /etc/my.cnf /etc/my.cnf.bak
同时备份可能存在的自定义配置文件:
bash复制mkdir -p /backup/mysql_conf
cp /etc/my.cnf.d/* /backup/mysql_conf/
3. 修改MySQL端口的具体步骤
3.1 编辑主配置文件
使用vim编辑/etc/my.cnf文件:
bash复制vim /etc/my.cnf
在[mysqld]段落下添加或修改port参数:
ini复制[mysqld]
port=新端口号 # 例如3307
注意:选择端口号时应避开常用服务端口(如80、443、22等),建议在49152-65535范围内选择。
3.2 处理SELinux环境
如果系统启用了SELinux(CentOS默认启用),需要添加新端口的SELinux策略:
bash复制semanage port -a -t mysqld_port_t -p tcp 新端口号
验证是否添加成功:
bash复制semanage port
