linux中mysql資料庫外部無法訪問解決

2021-12-30 09:56:34 字數 1445 閱讀 1177

linux中mysql資料庫外部無法訪問解決

今天在虛擬機器centos系統中安裝了mysql資料庫,可是安裝成功後外部卻無法訪問。找了好長時間才找到是由於防火牆設定造成的,現將解決過程寫出來分享一下。首先,檢查了mysql的許可權,已經設定過了。且服務也已經啟動,在localhost能夠成功登陸。iptables防火牆也開啟了5506埠(我安裝mysql的埠喜歡採用5506,而非預設的3306)。 www.2cto.com  

然後,我在本地環境鏈結我虛擬機器裡面的資料庫時怎麼也鏈結不上,提示2003的錯誤碼資訊。這個是由於網路連線不上造成的。使用sqlyog採用ssh的方式能夠連線上資料庫,這又說明網路是通的。然後檢查使用者的許可權已經設定過「%」的登陸許可權了。最後,我到虛擬機器裡面檢視防火牆的狀態,如下:

chain rh-firewall-1-input (2 references) num target prot opt source destination 

1 accept all -- 0.0.0.0/0 0.0.0.0/0 

2 accept icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 accept esp -- 0.0.0.0/0 0.0.0.0/0 

4 accept ah -- 0.0.0.0/0 0.0.0.0/0 

5 accept udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 accept udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 accept tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 accept all -- 0.0.0.0/0 0.0.0.0/0 state related,established 9 accept tcp -- 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:22 10 reject all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 11 accept tcp -- 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:80 12 accept tcp -- 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:5506

我就納悶了,怎麼防火牆是接受5506埠的,可就是連線不上資料庫呢。。。就在這時想到了ssh是可以連線上的。所以防火牆22的埠肯定是通的。那為什麼5506的埠就不行了。 突然發現了我設定的防火牆在

10 reject all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

後面,我猜想估計就是這個原因,馬上把開啟的埠設定放到了reject的上面,重啟防火牆。搞定了!

總結:設定防火牆的時候千萬要注意,不要將accept的設定放到了reject的後面,這樣就可以避免防火牆設定無效的情況發生。

友情提示:不要忘記重啟防火牆,呵呵!

mysql資料庫教程 外來鍵 MySQL資料庫外來鍵

設定外來鍵 外來鍵及功能 成績表 參照表也叫子表 中的學號來自學生表 被參照表也叫父表 成績表中的課程號來自課程表 當要刪除或更新被參照表中的給字段的值時,參照錶該字段的值如何改變。在on delete on update設定參照動作 restrict 限制 cascade 級聯 set null ...

MySQL 資料庫外來鍵

如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主表,表b稱為從表。外來鍵是用來實現參照完整性的,不同的外來鍵約束方式將可以使兩張表緊密的結合起來,特別是修改或者刪除的級聯操作將使得日常的維護工作更加輕鬆。這裡以mysql為例,總結一下3種外來鍵約束方式的區別和聯絡。這裡以使用者...

MySQL資料庫外來鍵

設定外來鍵 外來鍵及功能 成績表 參照表也叫子表 中的學號來自學生表 被參照表也叫父表 成績表中的課程號來自課程表 當要刪除或更新被參照表中的給字段的值時,參照錶該字段的值如何改變。在on delete on update設定參照動作 restrict 限制 cascade 級聯 set null ...