php 突然连接不上云服务器 php_network_getaddresses: getaddrinfo failed: Name or service not known
今天莫名加了会班,然后就出Bug了,我们用的云数据库连不上了,赶紧重启服务器,然后好了,又可以连上了,看日志报错。local.ERROR: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not knownOk.看意思应该是无法识别路由地址,百度一下,给的建议是直接把连接地址换
·
今天莫名加了会班,然后就出Bug了,我们用的云数据库连不上了,赶紧重启服务器,然后好了,又可以连上了,看日志报错。
local.ERROR: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
Ok.看意思应该是无法识别路由地址,百度一下,给的建议是直接把连接地址换成Ping的ip,或者重启php-fpm。因为云数据库的连接地址不是一个ip而是一串字符串域名。所以这个问题的原因就是php突然无法解析这个域名对应的ip了。php解析域名ip的函数是gethostbyname,也就是说是这个函数出了问题。那我们来说一下为什么重启php-fpm就可以了,因为php-fpm是一个管理php连接的主进程,它不会随着一次请求的结束而停止,而是会去安排新建一个php进程或者用之前用过但是未注销的php进程来处理http请求,所以当php-fpm出问题的时候它管理的其他php进程也会跟着它出问题,导致所有的请求都无法使用gethostbyname这个函数,也就一直无法连接上云数据库了。
更多推荐
已为社区贡献4条内容
所有评论(0)