macOS MySQL外連訪問端口3306連不上被擋被拒

5 月 22, 2021 | | 0 comments

客戶端外連訪問在Mac電腦中安裝的mysq失敗。

錯誤信息顯示:

[root@centos7 /]# mysql -hxxx.xxx.xxx.xxx -P3306 -uroot -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111)

分析可能原因:

  1. MySQL遠端登陸授權(已配置,因此排除,未配置可參考:遠端登陸授權MySQL
  2. 遠程訪問端口

可通過以下指令訪問Mac本機3306端口查看

[root@centos7 /]# wget xxx.xxx.xxx.xxx:3306
--2020-10-28 10:31:55--  http://xxx.xxx.xxx.xxx:3306/
Connecting to xxx.xxx.xxx.xxx:3306... failed: Connection refused.

訪問被拒,查證是端口問題,那麼在確認查看Mac,本機防火牆是否關閉

系统偏好設置 -- 安全性與隱私 -- 防火牆 -- 關閉(默認)

防火牆關閉仍不能訪問

Mac本機查看該端口是否真的存在服務,以及該端口的監聽地址

lsof -i:3306

COMMAND   PID USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
mysqld  11576 dooo   31u  IPv4 0x3757ab20da36969      0t0  TCP localhost:mysql (LISTEN)

3306 端口存在MySQL服務

netstat -anp tcp | grep 3306

tcp4       0      0  127.0.0.1.3306         *.*                    LISTEN

監聽地址是127.0.0.1 本地,因此只能接受本地的連接訪問

解決方式: 修改my.cnf檔案內的監聽ip 127.0.0.1,改成0.0.0.0接受所有地址的訪問。

vim /usr/local/etc/my.cnf

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
# bind-address = 127.0.0.1 #將僅監聽本機(只接受本機訪問)註釋
bind-address = 0.0.0.0 #接受所有地址的訪問

修改完成後,重啟MySQL服務並查看

netstat -anp tcp | grep 3306

tcp4       0      0  *.3306                 *.*                    LISTEN

MySQL服務3306 port已可以接受所有地址的訪問

分享來源連結:Mac 訪問端口3306 被拒