找不到任何关于unix域套接字连接支持官方mongo-go-driver的信息。它是否得到正式实施和支持?“mongodb:/tmp/mongodb-27017.sock”URI不起作用。
fslejnso1#
它是否得到正式实施和支持?使用官方的MongoDB Go driver可以直接连接到URI套接字。你只需要转义斜杠。例如使用v1.1+:
mongoURI := "mongodb://%2Ftmp%2Fmongodb-27017.sock" client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI)) if err != nil { panic(err) } ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) defer cancel() err = client.Connect(ctx) if err != nil { panic(err) }
字符串此外,mongo.Client支持两种类型的连接字符串,或者:
mongodb://user: [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) :27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl
mongodb+srv://server.example.com/
请注意,MongoDB在设计上是一个分布式数据库(参见Replica Set)。Socket是一种基于文件的通信,旨在用于在单个机器内访问。除非您的用例和需求特别需要通过Unix套接字直接连接,否则我建议使用上述连接字符串格式之一。
1条答案
按热度按时间fslejnso1#
它是否得到正式实施和支持?
使用官方的MongoDB Go driver可以直接连接到URI套接字。你只需要转义斜杠。例如使用v1.1+:
字符串
此外,mongo.Client支持两种类型的连接字符串,或者:
mongodb://user: [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) :27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl
mongodb+srv://server.example.com/
请注意,MongoDB在设计上是一个分布式数据库(参见Replica Set)。Socket是一种基于文件的通信,旨在用于在单个机器内访问。除非您的用例和需求特别需要通过Unix套接字直接连接,否则我建议使用上述连接字符串格式之一。