如何開啟MySQL遠程連接


MySql-Server 出於安全方面考慮只允許本機(localhost, 127.0.0.1)來連接訪問,這對於 Web-Server 與 MySql-Server 都在同一台服務器上的網站架構來說是沒有問題的。

但隨着網站流量的增加,后期服務器架構可能會將 Web-Server 與 MySql-Server 分別放在獨立的服務器上,以便得到更大性能的提升,此時 MySql-Server 就要修改成允許 Web-Server 進行遠程連接。

開啟了遠程連接,數據庫的后期管理運維也不用每次都登到服務器,只要用圖形化界面(如phpMyAdmin)即可遠程管理。

開啟MySql-Server遠程連接主要從授權訪問ip和服務器端口進行操作:

1.在服務器上登錄 Mysql-Server 連接本地 mysql (默認只允許本地連接,phpMyAdmin的遠程訪問實際相當於本地連接):

[root@iZq2mvq6snkcniZ ~]# mysql -uroot -p123456      

123456是密碼,請使用您數據庫的密碼。此處以命令行登錄舉例,也可以使用圖形界面等。

2.修改 Mysql-Server 用戶配置:

MySQL [(none)]>use mysql;
#查看現有用戶,密碼及允許連接的主機
MySQL [mysql]> SELECT User, Password, Host FROM user;        
+------+-------------------------------------------+-----------+
| User | Password                                  | Host      |
+------+-------------------------------------------+-----------+
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | localhost |
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 127.0.0.1 |
+------+-------------------------------------------+-----------+
2 rows in set (0.00 sec)

#設置為所有IP都可以訪問,比較危險,不建議。
MySQL [mysql]> UPDATE user SET Host=@'%' where user='root' AND Host='localhost' LIMIT 1;       
MySQL [mysql]> flush privileges;
#再次查看現有用戶,密碼及允許連接的主機
MySQL [mysql]> SELECT User, Password, Host FROM user;       
+------+-------------------------------------------+-----------+
| User | Password                                  | Host      |
+------+-------------------------------------------+-----------+
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |           |
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 127.0.0.1 |
+------+-------------------------------------------+-----------+

3.最后,請注意在linux服務器上,默認3306端口是關閉的,不允許遠程訪問。因此需要打開3306端口供mysql遠程連接使用,端口打開方法:

[root@iZq2mvq6snkcniZ ~]# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
[root@iZq2mvq6snkcniZ ~]# service iptables save

至此,就可以真正遠程訪問數據庫了,遠程訪問舉例:

其他命令參考:
下面我們配置 root 用戶: 密碼為空, 只允許從 192.168.1.100 連接。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION;
@'192.168.1.100'可以替換為@‘%’就可任意ip訪問,當然我們也可以直接用 UPDATE 更新 root 用戶 Host, SQL如下:
mysql> UPDATE user SET Host='192.168.1.100' WHERE User='root' AND Host='localhost' LIMIT 1;

本文由Websoft9原創發布,轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM