在Linux(CentOS)中通过配置文件修改MySQL端口号

这篇文章详细介绍了如何切换到root用户,编辑MySQL的配置文件(/etc/my.cnf)来更改端口号,然后通过systemctl重启MySQL服务。在遇到重启失败由于SELinux拦截的情况下,使用semanage命令允许MySQL使用特定端口,并最终成功重启MySQL验证端口号的变更。

1.1  执行命令su切换为root账号(输入密码时不会显示密码,实际已经输入)

su

1.2 执行下方命令打开配置文件

/etc/my.cnf是默认的配置文件路径,如果你修改过路径就把/etc/my.cnf改成修改后的路径

vi /etc/my.cnf

1.3 打开配置文件后修改/添加port(端口号)参数

按键盘上的INSERT键即可修改配置文件,修改完成后按键盘上的ESC键退出修改,最后输入:wq!保存修改

5bfae902709845b28ec2f7cbd9a1c309.png

1.4 重启MySQL

1.4.1 修改/添加完端口号后执行下方命令重启MySQL

systemctl restart mysqld

1.4.2 重启失败出现报错(若无报错直接跳过到文末就行)

6ca1d6d000ca4c0ebb694802fda22379.png

1.4.3 执行下方命令查看报错

journalctl -xe

1.4.4 可以看到报错是因为被Selinux拦截了6ac8805afe2246e78184697eb6c3d2ea.png

1.4.5 执行下方命令允许MySQL使用3000端口号

                               (端口号改成你自己设置的)
semanage port -a -t mysqld_port_t -p tcp 3000

1.4.6 再次执行下方命令重启MySQL即可成功修改端口号

systemctl restart mysqld

1.5 查看端口号 

1.5.1 登录MySQL,执行下方命令即可查看端口号

show global variables like 'port';
8e835c0121e44474837bf8c61898c270.png
我的端口号如图
<think>嗯,用户想在Linux系统中修改MySQL的默认端口号3306,我需要仔细回想一下相关的步骤。首先,我应该确认用户需要修改端口的原因,可能是为了避免端口冲突或者增强安全性,但用户没有具体说明,所以直接按照步骤来指导。 根据之前的引用资料,修改MySQL端口主要涉及修改配置文件,通常是/etc/my.cnf或者/etc/mysql/my.cnf,不同的Linux发行版可能位置不同。比如CentOS和Ubuntu的配置文件路径可能不一样,需要提醒用户检查自己的系统。然后找到[mysqld]部分,添加port=新端口号,比如3506。同时,用户可能还需要修改client部分的端口设置,确保客户端工具也能连接到正确的端口。 接下来,修改配置文件后必须重启MySQL服务,命令可能是systemctl restart mysqld或者service mysql restart,这取决于系统使用的init系统。此外,如果系统启用了SELinux,可能需要临时关闭或者添加新端口的策略,否则SELinux可能会阻止MySQL使用新端口。这里要注意,用户如果是CentOS系统,可能需要处理SELinux,其他系统可能不需要这一步。 防火墙设置也是一个关键点,需要确保新端口在防火墙规则中是开放的,使用firewall-cmd或者iptables命令。比如,使用firewall-cmd --add-port=3506/tcp --permanent然后重新加载防火墙。用户如果遇到连接问题,可能需要检查防火墙是否放行了新端口。 最后,验证端口是否修改成功,可以用netstat -tuln | grep '新端口号'或者ss -tuln,查看MySQL进程是否监听在新端口上。同时,使用mysql客户端连接时指定-P参数测试连接是否正常。 可能用户会遇到的常见问题包括:配置文件修改后没有重启服务,SELinux未正确配置导致端口被阻止,或者防火墙没有开放新端口。需要提醒用户逐一排查这些方面。另外,如果MySQL版本不同,配置文件的位置可能有差异,需要用户根据实际情况调整。 还有,用户可能不熟悉vi编辑器的使用,可能需要指导如何保存退出,或者建议使用nano等更简单的编辑器。同时,备份原配置文件是一个好习惯,避免修改出错后无法恢复。需要建议用户先备份,再进行修改。 总结一下,步骤应该是:编辑配置文件,添加端口设置,处理SELinux(如有必要),调整防火墙,重启服务,验证更改。确保每个步骤都清晰,并提醒可能的注意事项和常见问题解决方法。</think>### 分步指南:修改Linux系统中MySQL的默认端口号3306 #### **1. 修改MySQL配置文件** - **定位配置文件** 打开MySQL配置文件(通常为`/etc/my.cnf`或`/etc/mysql/mysql.conf.d/mysqld.cnf`,具体路径取决于系统版本)。 ```bash sudo vi /etc/my.cnf ``` - **添加端口配置** 在`[mysqld]`段落中添加`port=新端口号`(例如`port=3506`),并在`[client]`段落同步修改端口(确保客户端工具默认使用新端口)[^3][^4][^5]: ```ini [client] port=3506 [mysqld] port=3506 ``` #### **2. 处理SELinux(仅限CentOS/RHEL系统)** - **临时关闭SELinux** ```bash sudo setenforce 0 ``` - **永久允许新端口** 若需长期生效,需通过`semanage`添加策略: ```bash sudo semanage port -a -t mysqld_port_t -p tcp 3506 ``` #### **3. 调整防火墙规则** - **开放新端口** 使用`firewalld`或`iptables`放行端口: ```bash sudo firewall-cmd --add-port=3506/tcp --permanent sudo firewall-cmd --reload ``` #### **4. 重启MySQL服务** - **重启服务使配置生效** ```bash sudo systemctl restart mysqld # 或 service mysql restart ``` #### **5. 验证新端口** - **检查监听状态** ```bash sudo netstat -tuln | grep 3506 # 或使用 ss 命令 sudo ss -tuln | grep mysql ``` - **客户端连接测试** ```bash mysql -u root -p -P 3506 ``` --- ### **常见问题及解决方法** 1. **连接失败(端口未生效)** - 确保配置文件修改后已重启MySQL服务。 - 检查防火墙和SELinux策略是否放行新端口[^2]。 2. **配置文件路径不匹配** 若未找到`/etc/my.cnf`,尝试在`/etc/mysql/`目录下搜索`.cnf`文件,或在`/usr/my.cnf`中修改。 3. **客户端工具未同步配置** 在客户端配置文件(如`~/.my.cnf`)中添加`port=3506`,避免每次手动指定端口。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CVPlayer-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值