Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用DNS名称在两个虚拟机之间进行通信_Mysql_Linux_Azure_Dns - Fatal编程技术网

Mysql 使用DNS名称在两个虚拟机之间进行通信

Mysql 使用DNS名称在两个虚拟机之间进行通信,mysql,linux,azure,dns,Mysql,Linux,Azure,Dns,首先,如果之前有人问过这个问题,请道歉 假设我有运行Linux的虚拟机A和B。VM A将访问VM B中的MySQL服务器。在Azure仪表板中,对于两个VM,它都显示一个关联的DNS名称(每个VM的名称明显不同)。从Azure之外的机器上,我可以使用这些DNS名称通过SSH很好地连接到这些VM中的任何一个 然而,当我尝试使用vmb的DNS名称从vma连接到vmb中的MySQL服务器(通过MySQL客户端或使用PHP函数)时,大约每五次连接尝试中就有两次成功。其余的尝试表明主机未知(因此,如果我是

首先,如果之前有人问过这个问题,请道歉

假设我有运行Linux的虚拟机A和B。VM A将访问VM B中的MySQL服务器。在Azure仪表板中,对于两个VM,它都显示一个关联的DNS名称(每个VM的名称明显不同)。从Azure之外的机器上,我可以使用这些DNS名称通过SSH很好地连接到这些VM中的任何一个

然而,当我尝试使用vmb的DNS名称从vma连接到vmb中的MySQL服务器(通过MySQL客户端或使用PHP函数)时,大约每五次连接尝试中就有两次成功。其余的尝试表明主机未知(因此,如果我是对的,VM A在解析VM B的DNS名称时遇到问题)

我一直在查看MySQL的配置文件和两个VM的主机文件,但到目前为止,我还没有找到任何东西能够解释为什么VM A有时能够通过其DNS名称连接到VM B MySQL,而其他时候不能。这似乎完全是假的

如果我用MySQL虚拟机的公共虚拟IP地址替换其DNS名称,我想我可以解决这个问题。但是,当VM B的公共虚拟IP发生变化时,这将是一个问题

如有任何见解,将不胜感激


谢谢您的时间。

您需要创建一个虚拟网络,并将其添加到VNET,以使2台机器正常工作。

稍后我将尝试并发回结果。不过,你知道为什么它会表现出这种看似随机的行为吗?删除虚拟机、创建VNET、使用相同的VHDD创建新的虚拟机并将它们添加到VNET中是最好的方法吗?通过这种方式,他们可以与固定的内部VNET IP进行通信,并且仍然可以使用他们的公共VIP从outisde Azure进行访问?似乎Azure VM在DNS查询方面应用了一些限制,这解释了为什么有些查询可以工作,有些查询似乎随机失败。最终,我被指示采用你的解决方案,所以我接受了。每个VM的DNS查询流量都被限制。如果您的应用程序对多个目标名称执行频繁的DNS查询,则某些查询可能会超时。一种可能的解决方法是减少每个VM的DNS查询流量,然后重试查找-