当前位置: 首页 > 知识库问答 >
问题:

NodeJS MongoDB UNIX套接字连接

汤枫涟
2023-03-14

在nodeJS应用程序中,我希望通过其UNIX套接字/tmp/mongdb-27017连接到我的MongoDB数据库。sock。我用这个包裹https://mongodb.github.io/node-mongodb-native/?jmp=docs(版本3.1.6),通过这种方式:

const client = await MongoClient.connect("mongodb://%2Ftmp%2Fmongodb-27017.sock")

此处的文档中引用了URI:https://docs.mongodb.com/manual/reference/connection-string/#unix-域套接字。但在我的例子中,它失败了,错误如下:

MongoNetworkError:在第一次连接时未能连接到服务器[/tmp/mongodb-27017.sock:27017][MongoNetworkError:connect-ECONNREFUSED/tmp/mongodb-27017.sock]

有人知道是否可以从nodeJS连接到mongoDB UNIX套接字,以及是否有特定的事情要做吗?在文档中找不到具体信息。

共有2个答案

瞿博易
2023-03-14

可以使用完整的Unix域套接字路径而不是主机名,mongod应该在主机名上侦听客户端连接。它始于Mongo 3.6

柴博
2023-03-14

对我来说,解决方案不是逃避路径,与文档上的文档相反。mongodb。通用域名格式。所以试试看

mongodb:///tmp/mongodb-27017.sock

而不是

mongodb:///tmp/mongodb-27017.sock

当然,还要确保套接字文件存在:

$ls-al/tmp/mongodb-27017。sock
srwxrwxrwx 1 mongodb mongodb 0 Apr 1 21:47/tmp/mongodb-27017。短袜

一个更完整的示例使用来自另一个数据库的用户帐户,然后是我们要连接的数据库:

mongodb://foo:pass@/tmp/mongodb-27017。袜子/某物?authSource=admin

这里通过用户foo连接到Somedb数据库,foo是存储在管理数据库中的用户帐户。

 类似资料:
  • 问题内容: 如何创建SSL套接字连接? 我真的需要创建密钥库吗?该密钥库应该与我所有的客户端应用程序共享吗? 我用以下代码创建了一个服务器: 我用以下代码在android上创建了一个客户端: 但是当我尝试连接时,会引发以下错误: 问题答案: 您需要一个证书来建立ssl连接,您可以在密钥库中加载证书,也可以加载证书本身。我将显示一些有关keystore选项的示例。 您的代码需要一些参数才能运行: 您

  • 线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi

  • 问题内容: 调用一次后如何重新连接到套接字io ? 这是代码 如果我这样做,它会起作用。如果我这样做,它将断开连接。但是,如果我尝试使用重新连接,则连接不再起作用。我如何才能建立连接? 问题答案: 好吧,您可以在这里选择… 首次初始化套接字值时,应使用, 下次(调用一次断开连接后),您应使用再次连接。 所以你的应该是这样的

  • 服务器名设置为“localhost”,端口为80。使用这些参数,我可以运行程序而没有任何异常,但是当代码到达in.readutf()行时,它会旋转。 当端口更改为任何其他端口时,我会得到一个连接拒绝异常。 另一方面,当我创建一个简单的“ServerSocket”程序接收端口80上的请求时,我会得到“Address Academy in use”异常,除了80之外的任何端口都适用于“ServerSo

  • 问题内容: 我正在尝试做的事情: 我现在正在尝试构建一个测试应用程序,只需在Android手机(4.2.2)(作为客户端)上的应用程序与在PC上运行的Java应用程序(Windows8)(作为服务器)通过套接字连接。 我已经完成的工作: 我已经在PC上的Java中为客户端和服务器编写了程序,并对其进行了积极的测试(建立了Connection)。 网络: 我的手机和PC都连接到我家里的wifi。PC