關(guān)于在Windows系統(tǒng)下使用遠程鏈接去連接虛擬機或者遠程的數(shù)據(jù)庫的連接失敗問題。
一下操作都需要在虛擬機或者遠程服務(wù)器可以聯(lián)網(wǎng)的情況下。
首先可以使用
#netstat -ntpl
//--line-number 使用該蠶食可以查看到規(guī)則的行號
在虛擬機或者遠程服務(wù)器中查看網(wǎng)絡(luò)端口信息

image.png
如果3306的端口號沒打開,則可以使用以下命令將其打開:
#iptables -A INPUT -ptcp --dport 端口號 -j ACCEPT //打開端口(添加規(guī)則)
#service iptables restart //重啟iptables
另附關(guān)閉端口:
#iptables -A INPUT -ptcp --dport 端口號 -j DROP //關(guān)閉端口
之后查看防火墻的狀態(tài):
#iptables -vnL

image.png
從此可以看到,3306端口的數(shù)據(jù)包都是丟棄狀態(tài),在此,可以清除防火墻中的規(guī)則
#iptables -F
或者關(guān)閉防火墻,另附防火墻打開和關(guān)閉方法:
#chkconfig iptables on //開啟,重啟后生效
#chkconfig iptables off //關(guān)閉,重啟后生效
#service iptables start //開啟,立即生效
#service iptables stop //關(guān)閉,立即生效
之后使用Navicat遠程連接了一下MySQL,但出現(xiàn)了一下錯誤:

image.png
這是因為MySQL沒有允許遠程登錄,所以要在MySQL中授權(quán)遠程登錄
首先登錄進入到MySQL:
#mysql -h主機地址 -u用戶名-p用戶密碼
手動增加可以遠程訪問數(shù)據(jù)庫的用戶。
方法一、本地登入mysql,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,將"localhost"改為"%"
#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
方法二、直接授權(quán)(推薦)
從任何主機上使用root用戶,密碼:youpassword(你的root密碼)連接到mysql服務(wù)器:
#mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
操作完后需要刷新權(quán)限:
FLUSH PRIVILEGES;
這時候再使用Navicat進行遠程連接MySQL,連接測試如下圖

image.png
另外:主機名或IP地址那一欄寫的是被連接的服務(wù)器地址,如果是虛擬機則是虛擬機的地址