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

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



然后,切记:

恢复/etc/my.cnf的只读属性!

恢复/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

posted @ 2020-09-03 02:29  CUCKOO0615  阅读(2586)  评论(0编辑  收藏  举报