获得徽章 0
- 商鞅知马力,比干见人心。王勃浮绿水,屈原拨清波。
李渊无大儿,二凤无长兄。子推依山尽, 赵昺入海流。
萧妃新醅酒,允文小火炉。解缙天欲雪,李煜一杯无。
孙膑脚扑朔,左丘眼迷离。赵政绕柱走,安辨太史是雄雌?67 - 程序员之间的核心差异是只看表象还是能看到核心,就像下棋一样你能看3步还是6步 (点开看详细举例分析)
比如连MySQL Server报错了,如图1 哪怕是个文盲看到这报错信息(还有很多人从来不看报错信息的,这种直接开除…… 我没管过几百人也想开除这种程序员)也知道是连不上MySQL Server,这是站在业务层的视角,反正是没连接上,为啥不知道,但是程序员想象力很丰富,连不上肯定是防火墙、服务没起、权限不对……等等,反正是瞎蒙,这是第一层次的程序员,极大概率覆盖了正在看的你
第二层就得深入分析一下 OS 在这里帮你干啥了(这里OS代表了任何你依赖的下层),你连Server肯定得走OS 网络栈,所以这里用strace 顺藤摸瓜,如图2/3/4 这里3种原因都会导致 ERROR 2003 (HY000): Can't connect to MySQL server
这3种原因里又分为 2个现象,一个是 (99)EADDRNOTAVAIL 一个是 (111) ECONNREFUSED 你看很复杂吧(先去想想为啥你到不了这个深度),能到这一层的程序员就不到20%了
程序员日常太喜欢喊网络抖动了,这大部分时候都是让网络背锅。我之前花了几年写过一篇Java 错误堆栈 Communications link failure,这也是个大一统的报错信息,下面导致的原因可多了,别人网络算命比你靠谱是有点信息支撑的。是的就是花了几年把各种不同原因的Communications link failure 给整理出来。展开
12
![[微笑]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_1.7d9f699.png)
,我试试不发图片看看]