1. 程式人生 > >MySql無法外網訪問或者無法本地登入的解決方法

MySql無法外網訪問或者無法本地登入的解決方法

mysql無法登入問題解決

之前一段時間由於一些原因,重複裝了幾次系統。。。
反覆配置了幾次mysql,在最後一次竟然發現mysql用外網連線不上了。。。
羅列一下常見的mysql無法登入的原因

  1. 最常見的的原因就是防火牆沒有放行mysql的埠(預設為3306),注意這裡的防火牆如果你使用的是雲主機的話,雲主機提供商的放行規則也要將3306解封。下面附上CentOS防火牆的設定方法iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
  2. 第二種原因就是使用者沒有指定Host訪問了。如果你想在任何的外網都可以訪問資料庫,那麼可以使用以下的mysql命令建立使用者CREATE USER 'xxx'@'%' IDENTIFIED BY 'xxxxxxx;
    ,如果想指定ip,就將%換成ip地址。這裡需要注意的是,如果你已經配置了Host為%的使用者,你就不用再給這個使用者分配其他的Host了,不然你會登入不上去。具體的原因好像是MySql的Host匹配機制的鍋。。。
  3. 如果你沒有配置%的使用者的話,並且還是登入不上去的話,那麼就有可能是你的hosts檔案的配置有問題,博主之前使用了域名當作主機,結果無法登入,就是因為hosts檔案有關於域名的對映,導致Host不匹配。。。(Linux的Hosts檔案路徑一般為/etc/hosts)
  4. 每次修改完之後,記得執行flush privileges;,一定要記得,不然你改的使用者配置都不會生效的。。。
  5. 總結到最後,root使用者最好不要配置Host為%,安全很重要,直接新建一個Host為%的使用者就可以了。