我面临一个奇怪的问题。我创建了一个数据库和几个集合。它们由司机访问并在生产中顺利运行。当我创建生产环境时,我创建了一个具有管理员权限的用户以及所有驱动程序在连接字符串中使用的相同凭据。我观察到system.users集合为我创建的用户提供了一个条目。但是当我开始使用副本集时,它失败了,auth = true。由于配置中未配置相同的密钥,因此我在配置文件中删除了auth = true,但继续使用相同的凭据从驱动程序连接到数据库。
现在数据库中没有用户条目。我不知道它是如何消失的。此外,驱动程序仍使用相同的凭据连接到数据库。不使用connectionstring中的username / pwd,我无法连接到db(来自驱动程序)。我很惊讶这有用。
但我遇到的更大问题是每当我创建一个新数据库并在其中创建一个集合时,我都可以在mongoshell上访问它,但我无法从使用连接字符串凭据的驱动程序连接到它。此约束强制我在同一数据库中创建所有集合。
我如何解决这个问题,它与mongod.lock有什么关系?我甚至不能在一分钟内取消生产环境。