MySql-Server 出于安全方面考慮只允許本機(localhost, 127.0.0.1)來連接訪問,這對于 Web-Server 與 MySql-Server 都在同一臺服務(wù)器上的網(wǎng)站架構(gòu)來說是沒有問題的。
但隨著網(wǎng)站流量的增加,后期服務(wù)器架構(gòu)可能會將 Web-Server 與 MySql-Server 分別放在獨立的服務(wù)器上,以便得到更大性能的提升,此時 MySql-Server 就要修改成允許 Web-Server 進行遠程連接。
開啟了遠程連接,數(shù)據(jù)庫的后期管理運維也不用每次都登到服務(wù)器,只要用圖形化界面(如phpMyAdmin)即可遠程管理。
開啟MySql-Server遠程連接主要從授權(quán)訪問ip和服務(wù)器端口進行操作:
1.在服務(wù)器上登錄 Mysql-Server 連接本地 mysql (默認只允許本地連接,phpMyAdmin的遠程訪問實際相當于本地連接):
[root@iZq2mvq6snkcniZ ~]# mysql -uroot -p123456
123456是密碼,請使用您數(shù)據(jù)庫的密碼。此處以命令行登錄舉例,也可以使用圖形界面等。
2.修改 Mysql-Server 用戶配置:
MySQL [(none)]>use mysql;
#查看現(xiàn)有用戶,密碼及允許連接的主機
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)
#設(shè)置為所有IP都可以訪問,比較危險,不建議。
MySQL [mysql]> UPDATE user SET Host=@'%' where user='root' AND Host='localhost' LIMIT 1;
MySQL [mysql]> flush privileges;
#再次查看現(xiàn)有用戶,密碼及允許連接的主機
MySQL [mysql]> SELECT User, Password, Host FROM user;
+------+-------------------------------------------+-----------+
| User | Password | Host |
+------+-------------------------------------------+-----------+
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | |
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 127.0.0.1 |
+------+-------------------------------------------+-----------+
3.最后,請注意在linux服務(wù)器上,默認3306端口是關(guān)閉的,不允許遠程訪問。因此需要打開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
至此,就可以真正遠程訪問數(shù)據(jù)庫了,遠程訪問舉例:
其他命令參考:
下面我們配置 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原創(chuàng)發(fā)布,轉(zhuǎn)載請注明出處。
聯(lián)系客服