天天看点

MySql的Communications link failure

communications link failure 意思是与数据库的连接链路断了/失败了

网上搜了很多资料 有一种的效果立杆见影:将connectionString连接字符串中的127.0.0.1改为localhost 但这种情况对于远程连接或是分布式数据库不适用 说明这是一种特殊处理方法

到这里就有疑问了 那为什么用localhost就可以而用127.0.0.1却不行呢?这两个难道不是一样的么?

大错特错!

在这篇博客中https://blog.csdn.net/architect_csdn/article/details/79531334

有关于localhost与127.0.0.1的区别 写的很详细 大体意思就是127.0.0.1是需要经过网卡的 而localhost是不需要的!

所以大多时候如果是单一库的话用localhost更加高效。

但是如果不是单一库呢?

正确的做法应该是设置数据库内部的wait_timeout属性(单位为s) 意思是经过这么多的时间 数据库将自动断开连接 这与druid连接池的管理似乎是同时存在的