Windows连接Linux服务器中MySQL数据库-权限配置
2018-10-18 本文已影响71人
Fighting_001
问题描述
在Windows系统中安装了监控MySQL数据库服务器性能的工具Spotlight on MySQL,利用Spotlight连接Linux服务器中的MySQL,进行相关配置如下:
![](https://img.haomeiwen.com/i4866277/eeff31407956f4f3.png)
点击"Connect"进行连接,连接过程中出现异常提示:
Unable to connect to "192.168.xxx.xxx"
Spotight encountered the following error during connection: Failed to connect with error: Host 192.168.xxx.1' is not allowed to connect to this MySQL server
![](https://img.haomeiwen.com/i4866277/e771b34ae581e731.png)
问题分析
Host 192.168.xxx.1' is not allowed to connect to this MySQL server
选定的host不允许连接到MySQL服务器,很可能是MySQL中没有开放任意IP连接MySQL的权限,默认情况下出于安全策略的考虑并没有开放给任意IP连接MySQL
解决方案
在MySQL服务器上作如下配置:
方式1:配置指定IP的用户具备连接MySQL的权限
# 连接mysql
mysql -uroot -proot
# 使用mysql
show databases;
use mysql;
# 创建指定IP用户具备root用户权限
select host,user,password from user; # 查看user表中host和user字段的对应关系
update user set host='192.168.xxx.xxx' where user='root'; # 指定某个主机的 IP
update user set host='%' where user='root'; # 包括所有主机IP均可以root账户连接 MySQL
# 刷新权限配置,使配置生效
flush privileges;
![](https://img.haomeiwen.com/i4866277/74b41411bbc212e5.png)
备注:方式1执行修改权限时可能会出现提示"ERROR 1062...",但不影响本次权限的修改
方式2:直接授权任何主机以root用户均可连接MySQL
# 连接mysql
mysql -uroot -proot
# 授权root/root账户具备包括连接MySQL的权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
# 刷新权限配置,使配置生效
flush privileges;
![](https://img.haomeiwen.com/i4866277/a52f87b21facb1c0.png)
以上配置生效后,再次用Spotlight连接Linux服务器上的MySQL,即可连接成功,如下:
![](https://img.haomeiwen.com/i4866277/8f7d2801fcde7408.png)
Windows系统浏览器访问Linux服务器的IP,然后检测MySQL连接状态:连接ok
![](https://img.haomeiwen.com/i4866277/7923cbc91ca24866.png)
参考资料:
[1] 在windows系统连接linux系统下的mysql
[2] windows下用navicat远程链接虚拟机Linux下MySQL数据库