如何開啓MySQL遠程鏈接

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

但隨着網站流量的增長,後期服務器架構可能會將 Web-Server 與 MySql-Server 分別放在獨立的服務器上,以便獲得更大性能的提高,此時 MySql-Server 就要修改爲容許 Web-Server 進行遠程鏈接。mysql

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

開啓MySql-Server遠程鏈接主要從受權訪問ip和服務器端口進行操做:sql

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 鏈接。
tcp

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;

本文由博客一文多發平臺 OpenWrite 發佈!

相關文章
相關標籤/搜索