Mysql 使用DNS名称在两个虚拟机之间进行通信
首先,如果之前有人问过这个问题,请道歉 假设我有运行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发生变化时,这将是一个问题 如有任何见解,将不胜感激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函数)时,大约每五次连接尝试中就有两次成功。其余的尝试表明主机未知(因此,如果我是
谢谢您的时间。您需要创建一个虚拟网络,并将其添加到VNET,以使2台机器正常工作。稍后我将尝试并发回结果。不过,你知道为什么它会表现出这种看似随机的行为吗?删除虚拟机、创建VNET、使用相同的VHDD创建新的虚拟机并将它们添加到VNET中是最好的方法吗?通过这种方式,他们可以与固定的内部VNET IP进行通信,并且仍然可以使用他们的公共VIP从outisde Azure进行访问?似乎Azure VM在DNS查询方面应用了一些限制,这解释了为什么有些查询可以工作,有些查询似乎随机失败。最终,我被指示采用你的解决方案,所以我接受了。每个VM的DNS查询流量都被限制。如果您的应用程序对多个目标名称执行频繁的DNS查询,则某些查询可能会超时。一种可能的解决方法是减少每个VM的DNS查询流量,然后重试查找-