我有一个连接到远程 MySQL 主机以执行一些查询的脚本。 一段时间后,它挂起并显示一条消息“MySQL 服务器已消失”。 我有一个动态 IP,每天至少更改 3 次,我意识到它在 IP 更改时挂起。
因此,我更改了脚本来检测此错误,等待 30 - 90 秒并重新连接到服务器,但现在它卡在重新连接尝试上。
Linux 和 Windows 上都会发生这种情况。
这可能是什么原因造成的?
编辑:我认为这是显而易见的,但是改变的IP是运行脚本的本地IP,MySQL服务器位于固定IP上。本地电脑已连接到 ADSL 路由器,我猜我的 ISP 正在强制重新连接(IP 更改)。 我知道在 IP 更改时,所有现有连接都会丢失,包括。 MySQL,但我说我正在重新连接 IP 更改,但无法重新连接!
最佳答案
您如何获得新的 IP 地址?如果您使用的是 DNS(包括动态 DNS),我的猜测是您访问的是陈旧的 DNS 缓存。即使大多数动态 DNS 条目的 TTL 都超过 90 秒(并且某些中间缓存服务器可能会设置最小 TTL)。
关于PHP 脚本因本地 IP 更改而挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556442/