之前一段時間由於一些原因,重複裝了幾次系統。。。
反覆配置了幾次mysql,在最後一次竟然發現mysql用外網連線不上了。。。
羅列一下常見的mysql無法登入的原因
最常見的的原因就是防火牆沒有放行mysql的埠(預設為3306),注意這裡的防火牆如果你使用的是雲主機的話,雲主機提供商的放行規則也要將3306解封。下面附上centos防火牆的設定方法iptables -a input -p tcp --dport 3306 -j accept
mysql的my.cnf檔案配置的問題,在該檔案預設配置中bind-address
的值為localhost或者127.0.0.1,這種時候只要將其注釋掉或者改為0.0.0.0即可。可以使用netstat -an | grep 3306
命令檢視是否配置正確。(注意mysql配置檔案如果重複配置一樣的值,最後配置的值會生效,如果my.cnf檔案是引用了多個配置檔案的話,這時候只需要在配置檔案尾追加bind-address=0.0.0.0即可,可以省下到其它配置檔案定位bind-adress的時間,如果是在debian系統下的話,則是找到server.cnf
檔案,或者找的乙個配置檔案中有[mysqld]
進行修改即可)
正確的輸出如下
root@google-cloud:~# netstat -an | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* listen
使用者沒有指定host訪問了。如果你想在任何的外網都可以訪問資料庫,那麼可以使用以下的mysql命令建立使用者create user '***'@'%' identified by '******x;
,如果想指定ip,就將%換成ip位址。這裡需要注意的是,如果你已經配置了host為%的使用者,你就不用再給這個使用者分配其他的host了,不然你會登入不上去。具體的原因好像是mysql的host匹配機制的鍋。。。
如果你沒有配置%的使用者的話,並且還是登入不上去的話,那麼就有可能是你的hosts檔案的配置有問題,博主之前使用了網域名稱當作主機,結果無法登入,就是因為hosts檔案有關於網域名稱的對映,導致host不匹配。。。(linux的hosts檔案路徑一般為/etc/hosts)
每次修改完之後,記得執行flush privileges;
,一定要記得,不然你改的使用者配置都不會生效的。。。
總結到最後,root使用者最好不要配置host為%,安全很重要,直接新建乙個host為%的使用者就可以了。
阿里雲伺服器無法外網訪問的坑
最近各大平台在 雲伺服器,於是買了阿里雲的window 10伺服器,於是坑來了,簡單安裝nginx後,以為像其他伺服器一樣,公網ip訪問就?了,沒想到搞了好久,最後發現如下帖子 居然還要阿里雲使用者中心平台管理設定 安全組 允許哪些埠能訪問,這是什麼鬼,居然這樣玩,也就是阿里雲的操作複雜,對於只管理...
關於騰訊雲redis 無法外網訪問的解決方案
通過 繫結實現防火牆 不就好了嗎?豬腦子。準備工作 1.說道 防火牆 就要說乙個事情了,redis的內網ip 與 雲伺服器的內網ip必須在同乙個區域。3.我的伺服器是北京一區的,redis是北京三區的 這就可以 開始 linux系統 iptables t nat a prerouting d 雲伺服...
外網IP無法訪問
1 首先檢查80埠是否開放 firewall cmd query port 80 tcp 如果開啟返回yes,沒開啟返回的是no。2 開放80埠。permanent代表永久開放 firewall cmd permanent zone public add port 80 tcp 3 reload引數...