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 known
Ok.看意思应该是无法识别路由地址,百度一下,给的建议是直接把连接地址换成Ping的ip,或者重启php-fpm。因为云数据库的连接地址不是一个ip而是一串字符串域名。所以这个问题的原因就是php突然无法解析这个域名对应的ip了。php解析域名ip的函数是gethostbyname,也就是说是这个函数出了问题。那我们来说一下为什么重启php-fpm就可以了,因为php-fpm是一个管理php连接的主进程,它不会随着一次请求的结束而停止,而是会去安排新建一个php进程或者用之前用过但是未注销的php进程来处理http请求,所以当php-fpm出问题的时候它管理的其他php进程也会跟着它出问题,导致所有的请求都无法使用gethostbyname这个函数,也就一直无法连接上云数据库了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值