CentOS修改MySQL端口号的方法,以及修改后不生效的问题


只需要打开/etc/my.cnf文件,在[mysqld]下添加一行: port=端口号
chmod a+w /etc/my.cnf //去掉只读
vi /etc/my.cnf



然后,切记:取消/etc/my.cnf的可写属性,下面要说的问题就在这。
chmod a-w /etc/my.cnf

然后重启mysql服务
service mysqld restart

查看一下是否修改成功
netstat -nlpt
===============================================


第一个问题:端口号修改成功了,客户机依旧连不上?
原因: 防火墙应当开放此端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port

第二个问题:端口号无论怎么修改,mysql打开的端口依旧是3306,my.cnf文件不生效
原因1: selinux的问题
添加端口号到selinux: semanage port -a -t mysqld_port_t -p tcp 端口号
如果没安装selinux,则semanage会提示命令无效,需要安装selinux

原因2:就是my.cnf可写状态的问题
网上无数复制粘贴无脑转载的答案都直说一句:改my.cnf,却不知道说要改回来...
我用的5.7版mysql就遇到这个问题,无论怎么修改/etc/my.cnf,mysql的端口号就是雷打不动的3306。。

原来,系统中存在多个my.cnf文件,mysql会根据其自身规则,按照优先级顺序选择加载哪一个。
/etc/my.cnf正常情况下,确实是最优先加载的,

然而高版本的mysql添加了设定:如果这个文件全局可写,那么它就不会加载etc下的这个my.cnf,而是按照次序,加载其他某个目录下的另一个..
其实,这个问题我们用过mysql的--help,就可以查到

可以看到,如果这个文件可写,那么mysql就会有一个警告,告诉你:这个文件全句可写,被忽略掉了,mysql依后面的次序,加载了下一个文件中的配置.....

解决办法很简单:chmod a-w /etc/my.cnf


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM