在實際工作中項目在本地跑着,但是幾個人開發想要建立一個共有的數據庫,此時就需要數據庫設置爲外網可以訪問,設置方法如下:
mysql -u root -p
進入數據庫中,然後執行命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密碼' WITH GRANT OPTION;
執行過後要刷新數據庫權限,命令:
FLUSH PRIVILEGES;
此時就可以直接遠程訪問數據庫了
分析:
$ telnet 47.93.24.225 3306
telnet: connect to address 47.93.24.225: Operation timed out
telnet不通,說明是 防火牆,攔截掉了3306端口的公網訪問。
netstat -nutlp
查看3306端口是否已經啓動
iptables -L -n
iptables -L -n
發現3306端口是drop掉了
所以是服務器防火牆攔截了連接
其實一開始就應該想到
ssh連的是22端口
mysql連的是3306端口
所以是服務器拒絕了我
那麼就有兩種辦法解決這個問題
第一種就是最上面的解決辦法
第二種
工具就是先用ssh連到服務器上,然後 直接本地localhost連接數據庫。
工具地址
http://xclient.info/s/navicat-premium.html?_=28224c24c5d048ba73bf06b15e2a6668
第三種是設置防火牆把3306打開 不過不推薦,不安全