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 發佈!