安装了单机版的 mongod 4.4.4, 然后用官方驱动 mongo-go-driver 连接, 频频报错
server selection error
网上查都是说在 mongouri 上加上 connect=direct, 还是报错
最后才发现是初始化的时候的问题
init(){
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel() <- 这一步初始化之后就把上下文 cancel 了
...
}
因为我这个是单例长连接,直接用 ctx = context.Background() 即可
小伙伴们, copy 需谨慎啊!!
另外还有个小错误,如果 mongo-go-driver 报了 server selection error, 很可能是在设置参数比如:
SetMaxConnIdleTime()的时候,参数直接输入比如 5,但输入参数的格式是 time.Duration ,输入5 即 5 Nanosecond 而不是 5 秒,这么短的时间一下子就会报出 server selection error
改成 5 * time.Second 就OK 了