只需要打開/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