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 原创公布,转载请注明出处。