客戶端外連訪問在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)
分析可能原因:
- MySQL遠端登陸授權(已配置,因此排除,未配置可參考:遠端登陸授權MySQL)
- 遠程訪問端口
可通過以下指令訪問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 被拒