无法从主机虚拟机连接到mysql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法从主机虚拟机连接到mysql相关的知识,希望对你有一定的参考价值。

$ mysql -u testuser -h 192.168.57.5 -p

用户'root'@'192.168.57.1​​'拒绝访问(使用密码:是)

在虚拟客户端上,我已经使用以下命令向mysql用户授予了权限:

GRANT ALL ON DB。* to root@192.168.57.5由'password'识别;

但上面是行不通的。

解决方案正在运行:

GRANT ALL ON DB。* to root@192.168.57.1​​由'password'识别;

我的问题是为什么我需要授予root@192.168.57.1​​的权限?

我的虚拟机IP地址是192.168.57.5。

在MySQL配置中:

bind-address = 192.168.57.5

我可以用192.168.57.5访问我的虚拟机apache服务器和ip 192.168.57.5以及mysql服务器。

但我必须在MySQL服务器中授予192.168.57.1​​的权限。

答案

我确信已经多次回答了这个问题但是又来了一次......

授予权限时,将其授予正在连接的用户。您正在做的是授予访问MySQL服务器的权限。

GRANT ALL ON DB。* to root@192.168.57.5由'password'识别;

意味着向用户root授予所有IP,其IP为192.168.57.5

当您授予希望使用服务器的客户端访问权限时,它会神奇地起作用。

另一答案

在我的虚拟框中:

主机管理器IP:192.168.57.1​​和

客户端机器IP:192.168.57.5

为了从客户端机器访问MySQL。我必须为Host Manager网络IP地址而不是虚拟机IP地址提供授予权限。

这就是为什么下面的工作:

GRANT ALL ON DB。* to root@192.168.57.1​​由'password'识别;

以上是关于无法从主机虚拟机连接到mysql的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机无法连接到主机上的网络咋办?

虚拟机连不上主机网络

从本地主机连接不到虚拟机里面的服务

从具有私有和公共 IP 的虚拟机连接到私有 IP 上的 Google Cloud SQL 实例失败

深信服asv集群管理配置

KVM虚拟化的四种简单网络模型介绍及实现