![远程 Mysql 连接需要 5 秒才能建立](https://linux22.com/image/547422/%E8%BF%9C%E7%A8%8B%20Mysql%20%E8%BF%9E%E6%8E%A5%E9%9C%80%E8%A6%81%205%20%E7%A7%92%E6%89%8D%E8%83%BD%E5%BB%BA%E7%AB%8B.png)
设置如下,Ubuntu 8.04 服务器在 DMZ 中运行 Mysql 5
来自 DMZ 之外的 Windows 计算机上的 php 的远程连接需要 5 秒钟才能建立(此时 mysql 的速度很快),来自本地主机的连接是“即时”的
对我来说,这听起来像是一个标准的 DNS 问题,因此我启用了 skip-name-resolve 并确认它正在工作(错误文件记录了跳过的用户条目),但我们仍然看到 5 秒的延迟。我还尝试将客户端(netbios 名称,对吗?)添加为 hosts 文件中的条目,但问题仍然存在
我运行了 tcpdump,从我收集到的信息来看,它似乎正在尝试进行 netbios 查找(尽管我对读取 tcpdump 毫无经验!)我猜想它失败了,因为这个服务器是 DMZ 中唯一的服务器
我有点困惑下一步该去哪儿。
答案1
呵呵。有趣的问题。
查看 /etc/nsswicth.conf - 此文件确定系统数据库(用户、密码、主机等)的查找顺序。hosts:
行应类似于hosts: files dns <everything else>
。您也可以尝试删除<everything else>
。
答案2
5 秒的时间恰好可以将名称解析(无论是在服务器还是客户端上直接解析还是反向解析)确定为可能的罪魁祸首。例如,ping 是否表现出相同的行为?