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