Windows连接Linux服务器中MySQL数据库-权限配置

时间:2022-08-18 03:46:26

问题描述

在Windows系统中安装了监控MySQL数据库服务器性能的工具Spotlight on MySQL,利用Spotlight连接Linux服务器中的MySQL,进行相关配置如下:

 
Windows连接Linux服务器中MySQL数据库-权限配置

点击"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

 
Windows连接Linux服务器中MySQL数据库-权限配置

问题分析

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;
 
Windows连接Linux服务器中MySQL数据库-权限配置

备注:方式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;
 
Windows连接Linux服务器中MySQL数据库-权限配置

以上配置生效后,再次用Spotlight连接Linux服务器上的MySQL,即可连接成功,如下:

 
Windows连接Linux服务器中MySQL数据库-权限配置

Windows系统浏览器访问Linux服务器的IP,然后检测MySQL连接状态:连接ok

 
Windows连接Linux服务器中MySQL数据库-权限配置

参考资料:
[1] 在windows系统连接linux系统下的mysql
[2] windows下用navicat远程链接虚拟机Linux下MySQL数据库