mysql遠程登錄的那些事

在使用遠程服務器的時候,經常會遇到MySQL遠程登陸不上的問題,我最開始也被坑了一天,所以我把這些問題解決方法整理一下。


首先,我們需要確認服務器的防火牆是否屏蔽了3306這個端口(這是mysql遠程連接的默認端口)

iptables -L -n

然後就可以看到防火牆規則列表

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1080
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080


Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         


Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:31337
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:31337


如上圖所示,這裏我的3306端口是打開了的,ACCEPT,如果是DROP那就說明防火牆關閉了3306端口,這時就需要刪除這條規則

iptables -D INPUT 3  //刪除第三行的規則

如果你不是第三行填上指定的行數即可,做完之後保存規則表iptables-save 


下一步,增加遠程登錄的用戶(不建議使用root用戶)

登錄mysql

mysql -u root -p

輸入密碼登錄,執行以下命令

grant all privileges on base.* to user@"%" identified by 'password';
flush privileges;

exit;

這裏是爲base數據庫增加了一個遠程用戶,可以在任意地方登錄,擁有base數據庫的所有權限

以上,具體權限之類的可以自己去探索,這裏就不多做解釋了


http://blog.csdn.net/w2180z/article/details/52956694

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章