TLDR:由于 UserNotFound 错误(未找到的用户来自旧安装),我无法使用空数据目录开始全新安装 Mongo(来自 ZIP)。
更详细地说:我最初的 Mongo 数据库运行良好。出于测试目的,我移动了当前数据目录并创建了一个新目录。所以我停止了我正在运行的 Windows 服务
mongod --dbpath=C:\data\db --remove
创建了一个新的数据目录并尝试在 noauth 模式下启动一个新的 MongoDB
mongod --dbpath=C:\data\db --noauth
麻烦就从这里开始:MongoDB 尝试与我的旧数据库中的用户连接,当前设置中没有提到该用户。这是日志
2018-10-23T04:45:47.323-0700 I CONTROL [initandlisten] MongoDB 开始:pid=12508 port=27017 dbpath=C:\data\db 64-bit host=XXX
2018-10-23T04:45:47.323-0700 I CONTROL [initandlisten] targetMinOS:Windows 7/Windows Server 2008 R2
2018-10-23T04:45:47.323-0700 I CONTROL [initandlisten] 数据库版本 v3.6.8-45-g4f1bd30460
2018-10-23T04:45:47.323-0700 我控制 [initandlisten] git 版本:4f1bd3046036a8621c2ad5acde7cdf103a533226
2018-10-23T04:45:47.323-0700 I CONTROL [initandlisten] OpenSSL 版本:OpenSSL 1.0.2o-fips 2018 年 3 月 27 日
2018-10-23T04:45:47.323-0700 I CONTROL [initandlisten] 分配器:tcmalloc
2018-10-23T04:45:47.323-0700 I CONTROL [initandlisten] 模块:无
2018-10-23T04:45:47.323-0700 I CONTROL [initandlisten] 构建环境:
2018-10-23T04:45:47.327-0700 我控制 [initandlisten] distmod: 2008plus-ssl
2018-10-23T04:45:47.327-0700 我控制 [initandlisten] distarch: x86_64
2018-10-23T04:45:47.327-0700 我控制 [initandlisten] target_arch: x86_64
2018-10-23T04:45:47.327-0700 I CONTROL [initandlisten] 选项:{安全:{授权:“已禁用”},存储:{ dbPath:“C:\data\db”}}
2018-10-23T04:45:47.330-0700 I - [initandlisten] 在 C:\data\db 中检测到由“wiredTiger”存储引擎创建的数据文件,因此将活动存储引擎设置为“wiredTiger”。
2018-10-23T04:45:47.330-0700 I STORAGE [initandlisten]wiredtiger_open 配置:创建,cache_size=7379M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(快速) ,cache_cursors=false,compatibility=(release="3.0",require_max="3.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log =(等待=0),详细=(恢复进度),
2018-10-23T04:45:47.569-0700 I STORAGE [initandlisten] WiredTiger 消息 [1540295147:568779][12508:140717431611728],txn-recover:主恢复循环:从 2/4736 开始
2018-10-23T04:45:47.718-0700 I STORAGE [initandlisten] WiredTiger 消息 [1540295147:718169][12508:140717431611728],txn-recover:恢复日志 2 到 3
2018-10-23T04:45:47.815-0700 I STORAGE [initandlisten] WiredTiger 消息 [1540295147:815426][12508:140717431611728],txn-recover:恢复日志 3 到 3
2018-10-23T04:45:48.053-0700 I STORAGE [initandlisten] WiredTiger 消息 [1540295148:53068][12508:140717431611728],txn-recover:设置全局恢复时间戳:0
2018-10-23T04:45:48.137-0700 我控制 [initandlisten]
2018-10-23T04:45:48.138-0700 我控制 [initandlisten] ** 警告:此服务器绑定到本地主机。
2018-10-23T04:45:48.138-0700 I CONTROL [initandlisten] ** 远程系统将无法连接到此服务器。
2018-10-23T04:45:48.138-0700 I CONTROL [initandlisten] ** 使用 --bind_ip 启动服务器以指定哪个 IP
2018-10-23T04:45:48.138-0700 I CONTROL [initandlisten] ** 它应该提供响应的地址,或者使用 --bind_ip_all 到
2018-10-23T04:45:48.138-0700 I CONTROL [initandlisten] ** 绑定到所有接口。如果需要此行为,请启动
2018-10-23T04:45:48.138-0700 I CONTROL [initandlisten] ** 服务器与 --bind_ip 127.0.0.1 禁用此警告。
2018-10-23T04:45:48.138-0700 我控制 [initandlisten]
2018-10-23T13:45:48.471+0200 W FTDC [initandlisten] 无法初始化 FTDC 的性能计数器:WindowsPdhError:PdhExpandCounterPathW 失败,出现“Das angegebene Objekt wurde nicht auf dem Computer gefunden”。对于计数器 '\Memory\Available Bytes'
2018-10-23T13:45:48.471+0200 I FTDC [initandlisten] 使用目录“C:/data/db/diagnostic.data”初始化全时诊断数据捕获
2018-10-23T13:45:48.473+0200 I NETWORK [initandlisten] 等待端口 27017 上的连接
2018-10-23T13:45:48.863+0200 I NETWORK [listener] 从 127.0.0.1:57924 #1 接受连接(现在打开 1 个连接)
2018-10-23T13:45:48.864+0200 I NETWORK [conn1] 从 127.0.0.1:57924 conn1 收到客户端元数据:{驱动程序:{名称:“mongo-java-driver”,版本:“未知”},操作系统: {类型:“Windows”,名称:“Windows 10”,架构:“amd64”,版本:“10.0”},平台:“Java/Oracle Corporation/1.8.0_171-b11”}
2018-10-23T13:45:48.865+0200 I ACCESS [conn1] SCRAM-SHA-1 身份验证在客户端 127.0.0.1:57924 的管理员上对 fritz1338 失败;UserNotFound: 找不到用户 fritz1338@admin
2018-10-23T13:45:48.865+0200 I NETWORK [conn1] 结束连接 127.0.0.1:57924(现在打开 0 个连接)
2018-10-23T13:45:49.366+0200 I NETWORK [listener] 从 127.0.0.1:57925 #2 接受连接(现在打开 1 个连接)
2018-10-23T13:45:49.367+0200 I NETWORK [conn2] 从 127.0.0.1:57925 conn2 收到客户端元数据:{驱动程序:{名称:“mongo-java-driver”,版本:“未知”},操作系统: {类型:“Windows”,名称:“Windows 10”,架构:“amd64”,版本:“10.0”},平台:“Java/Oracle Corporation/1.8.0_171-b11”}
2018-10-23T13:45:49.369+0200 I ACCESS [conn2] SCRAM-SHA-1 身份验证在客户端 127.0.0.1:57925 的管理员上对 fritz1338 失败;UserNotFound: 找不到用户 fritz1338@admin
2018-10-23T13:45:49.370+0200 I NETWORK [conn2] 结束连接 127.0.0.1:57925(现在打开 0 个连接)
2018-10-23T13:45:49.872+0200 I NETWORK [listener] 从 127.0.0.1:57926 #3 接受连接(现在打开 1 个连接)
2018-10-23T13:45:49.873+0200 I NETWORK [conn3] 从 127.0.0.1:57926 conn3 收到客户端元数据:{驱动程序:{名称:“mongo-java-driver”,版本:“未知”},操作系统: {类型:“Windows”,名称:“Windows 10”,架构:“amd64”,版本:“10.0”},平台:“Java/Oracle Corporation/1.8.0_171-b11”}
2018-10-23T13:45:49.875+0200 I ACCESS [conn3] SCRAM-SHA-1 身份验证在客户端 127.0.0.1:57926 的管理员上对 fritz1338 失败;UserNotFound: 找不到用户 fritz1338@admin
2018-10-23T13:45:49.877+0200 I NETWORK [conn3] 结束连接 127.0.0.1:57926(现在打开 0 个连接)
“fritz1338”是我旧数据库实例的用户。如果我将旧的数据库目录移动到 data\db,那么一切都会再次正常工作。但我无法从 MongoDB 开始全新安装。
我已经尝试过的:
创建一个全新的 data\db 目录
重新下载 MongoDB(ZIP 文件)
在整个 PC 和注册表中搜索对 mongo 配置文件的引用(即使默认情况下 mongo 不使用配置文件)
删除了我的 .m2 maven 目录中的“mongo-java-driver”(尽管它不应该被访问)
运行 mongod 修复选项
mongod --dbpath=C:\data\db --repair
谁能告诉我为什么 MongoDB 的干净安装知道另一个数据目录中的旧用户名?