所以这是最奇怪的事情。
我有两台运行mongo的centOS 7服务器。现在我想强制执行身份验证,所以我在mongod.conf文件中添加了security.authorization: enabled。
我已经有一个用户在数据库"buzzztv“上。
因此,当我在第一台服务器上运行mongod --conf /etc/mongod.conf时,一切都很正常。
然后,我在第二台服务器上执行了完全相同的操作,每当我尝试连接其中一个用户时,都会收到以下错误:
connecting to: mongodb://127.0.0.1:27017/?authSource=buzzztv&compressors=disabled&gssapiServiceName=mongodb
2020-02-20T13:02:35.166+0000 E QUERY [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2020-02-20T13:02:35.168+0000 F - [main] exception: connect failed
2020-02-20T13:02:35.168+0000 E - [main] exiting with code 1现在,如果我运行mongod --fork --logpath /var/log/mongodb/mongod.log --auth,登录就能正常工作。
很明显,我可以直接运行这个命令,但我想使用mongod.conf。
这是我的mongod.conf文件,我检查过了,它是它工作的服务器上的文件的完美副本。
有什么想法吗?
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
security:
authorization: enabled
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
发布于 2020-02-21 00:30:12
因此,在研究了几个小时之后,我需要更改
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
显然,我的/var/lib/mongo出了点问题,所以我备份了数据,并创建了一个新文件夹/var/lib/mongodb
然后编辑mongod.conf文件以:
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
然后一切都很顺利。现在,我只需重新创建用户并重新插入所有数据,就可以开始了。
希望这能帮别人节省我浪费的时间
https://stackoverflow.com/questions/60320728
复制相似问题