在使用go-sql-driver过程中,有时候我发现会报invalid connection的错误,这个错误产生的原因设置了空闲连接不为0时,客户端拿到连接有可能是已经被服务端关闭了,此时就会发生invalid connection,网上有些解决方案是把空闲连接数设置0,不知道设置为0跟设置为50之类的性能有什么大的区别吗?跪求大神解答!
因为beego没有调用db.SetConnMaxLifetime 这个方法,导致客户端保持了已经关闭的链接,修改 addAliasWthDB 方法,在方法里面,添加 db.SetConnMaxLifetime(time.Second),time.Second 为数据库闲链接超时时间,而这个时间应该小于数据库设置闲时链接超时时间
#2
更多评论
当然这是因为服务端主动关闭了连接,因为服务端对连接的保持超时时间到了也关闭的,所以可以设置客户端连接超时时间小于服务端DB.SetConnMaxLifetime(time.Second)
#1