c - 如何为 mongo C 驱动程序构造一个带有用户名密码的 URI。

标签 c mongodb mongo-c-driver

我正在使用 mongo 3.0.8。我有一个经过身份验证的用户管理员,密码为 admin。我能够按如下方式连接到 mongo shell。

mongo admin -u amdin -p amdin

但是,我尝试使用以下 C 代码进行连接。这给了我一个错误

WARNING: client: Failed to connect to: ipv4 127.0.0.1:27017, error: 111, Connection refused

char URI[256];
snprintf(URI,256,"mongodb://admin:admin@127.0.0.1:27017/?authSource=admin");
mongoc_client_t *client = mongoc_client_new(URI);

最佳答案

错误 error: 111, Connection refused 是网络错误。 您的 URI 希望找到监听同一台机器 (127.0.0.1) 端口 27017 的服务器。可能的问题:

  • 服务器未运行
  • 服务器不在该端口上
  • 服务器绑定(bind) native “真实ip地址”。
  • 有本地防火墙(例如 iptables)阻止访问
  • 可能是 SELinux 问题?

如果这是一个 Linux 机器,这些命令可能有助于诊断:

netstat -an -A inet | grep LISTEN
/sbin/iptables -L

关于c - 如何为 mongo C 驱动程序构造一个带有用户名密码的 URI。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34671193/

相关文章:

c - 如何使用 MongoDB C 驱动程序和 FoundationDB 文档层进行事务处理?

c - valgrind - 使用 C api 连接到 mongodb 而不会导致 SIGSEGV

c++ - 如何将 pkg-config 添加到 Makefile?

c - FIFO 上的多个读取器/写入器(命名管道)

c# - 在 C# 应用程序中使用 C-DLL?

javascript - React/Redux - 无法读取未定义的属性 "XXX"

mongodb - EventStore 与 MongoDb

mongodb - fatal error : Class 'Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle' not found

c - 将数组分割成更小的 block 的最佳方法 - C 编程

c - 在 C 程序中出现两个错误