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 发布!