加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

solaris – 在UNIX域套接字上导致ECONNREFUSED的原因是什么?

发布时间:2020-12-15 22:32:09 所属栏目:安全 来源:网络整理
导读:在TCP服务器中,我知道拒绝连接可能是因为 进程停止侦听,通过在服务器套接字上调用close(现有连接保持打开状态,并拒绝新连接),或者 过程结束,或 该过程不经常接受连接,因此积压已满/积压太小. 尝试连接到UNIX域套接字时,ECONNREFUSED的可能原因是什么? 这个
在TCP服务器中,我知道拒绝连接可能是因为

>进程停止侦听,通过在服务器套接字上调用close(现有连接保持打开状态,并拒绝新连接),或者
>过程结束,或
>该过程不经常接受连接,因此积压已满/积压太小.

尝试连接到UNIX域套接字时,ECONNREFUSED的可能原因是什么?

这个问题是为了帮助我缩小a MySQL connection mystery on a Solaris 10 configuration.

解决方法

拒绝连接并不意味着服务器关闭套接字(连接到它后),这意味着没有服务器监听套接字.所以,首先,您的服务器崩溃,然后,客户端拒绝连接. (除非积压已满,如果传递给listen()的积压大小太小,或者您的服务器不能足够快地接受()连接,但我在现实生活中从未见过这种情况).

通常,我会把它归咎于某些防火墙,但是,因为,在你的另一篇文章中,你说它只是间歇性地发生,我想会发生的是:你的mysql服务器崩溃,safe_mysqld重新启动它,这需要几秒钟,并且在在启动阶段,你得到你的连接拒绝错误,因为那里没有服务器听你的.尝试设置每分钟执行“ps -ef | grep mysqld”的cron作业,检查进程ID是否会不时更改,并尝试将这些更改与您的连接拒绝错误消息相匹配.

如果mysqld没有重启,即进程ID保持不变,请尝试类似“truss -v listen,accept -p”的内容.这应该在每次客户端连接时给你一些输出 – 也许你可以匹配“在truss中发生的很多事情”到“??我现在拒绝连接”.但是,不要在负载很重的生产系统上执行此操作,否则桁架会a)将您淹没在输出中并且b)显着降低服务器速度.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读