解決虛擬機linux端mysql數據庫沒法遠程訪問

前天無聊在虛擬機中的CentOS上裝了一個 mysql玩玩,忽然想用jdbc鏈接用java操做下數據庫,但是怎麼都鏈接不上,具體狀況爲:
1.ping 192.168.16.128 成功
2.telnet 192.168.16.128 3306 拒絕訪問 在3306端口,可見CentOS防火牆屏蔽了3306端口
修改方式爲:
切換到root用戶
打開iptables的配置文件:vi /etc/sysconfig/iptables
修改CentOS防火牆時注意:必定要給本身留好後路,留VNC一個管理端口和SSh的管理端口
內容以下:
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
可見個人防火牆只開了22端口,所以咱們添加3306端口
修改CentOS防火牆須要注意的是,你必須根據本身服務器的狀況來修改這個文件。
舉例來講,若是你不但願開放80端口提供web服務,那麼應該相應的刪除這一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
咱們添加
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
所有修改完以後重啓iptables:service iptables restart
你能夠驗證一下是否規則都已經生效:iptables -L
這樣,咱們就完成了CentOS防火牆的設置修改。
 
這時咱們經過telnet 192.168.16.128 3306 成功
 
但此時咱們仍不能訪問,由於mysql沒有受權遠程用戶
如,你想root2使用root2從任何主機鏈接到mysql服務器的話。 
切換到mysql中
  mysql>GRANT ALL PRIVILEGES ON *.* TO 'root2'@'%'IDENTIFIED BY 'root2' WITH GRANT OPTION; 
  或者若是你想容許用戶myuser從ip爲192.168.1.6的主機鏈接到mysql服務器,並使用mypassword做爲密碼 
  mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 
  而後執行:
mysql>FLUSH RIVILEGES;
mysql>exit;
  使修改生效.
 
這時咱們在遠程:mysql -h 192.168.16.128 -u root2 -p 輸入密碼 root2 成功~
用jdbc鏈接~成功~撒花~~~
相關文章
相關標籤/搜索