node.js - Mongo 远程身份验证从一台服务器工作,但不在另一台服务器上工作
问题描述
我在办公网络上运行了一个节点脚本,它连接到同一网络中另一台运行 mongo 的机器。到目前为止,一切都很好。
现在我必须将此脚本移动到另一台机器上,但是当我尝试运行它时,我收到以下错误:
MongoError: Authentication failed.
at MessageStream.messageHandler (/var/www/portal_uploader/node_modules/mongodb/lib/cmap/connection.js:299:20)
at MessageStream.emit (events.js:314:20)
at processIncomingData (/var/www/portal_uploader/node_modules/mongodb/lib/cmap/message_stream.js:144:12)
at MessageStream._write (/var/www/portal_uploader/node_modules/mongodb/lib/cmap/message_stream.js:42:5)
at doWrite (_stream_writable.js:403:12)
at writeOrBuffer (_stream_writable.js:387:5)
at MessageStream.Writable.write (_stream_writable.js:318:11)
at Socket.ondata (_stream_readable.js:718:22)
at Socket.emit (events.js:314:20)
at addChunk (_stream_readable.js:297:12)
at readableAddChunk (_stream_readable.js:272:9)
at Socket.Readable.push (_stream_readable.js:213:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23) {
ok: 0,
code: 18,
codeName: 'AuthenticationFailed'
}
我的依赖是:
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"mongoose": "^5.11.17",
"morgan": "^1.10.0",
"multer": "^1.4.2",
"nedb": "^1.8.0",
"nodemon": "^2.0.7"
}
我的连接代码是:
try {
await mongoose.connect(process.env.DB_CONNECTION, {
useNewUrlParser: true,
useUnifiedTopology: true,
auth: {authSource: "admin"}
});
console.log("connected to mongodb");
} catch (err) {
console.error(err);
}
两台机器都使用节点 v12.22.6,这是机器中运行的版本,连接正常。
唯一的区别是原来的机器运行的是 debian,而新的机器运行的是rocky linux 8。
有任何想法吗?
解决方案
推荐阅读
- javascript - 尝试在 javascript 中访问全局变量方法,但仅在特定时间有效
- matlab - 我怎样才能最好地代表重质材料的减速带?
- javascript - 不匹配类型:对象而不是用户(已创建)
- swift - 我可以将按钮放到单独的视图中吗?
- sql - 在返回多个表的表中的每一列上选择不同的
- postgresql - 错误:json 类型的输入语法无效
- javascript - 我怎样才能使按钮的行为像后退箭头键一样?
- ios - Apple 审核流程的应用程序配置
- c# - C# 多行文本框到 .TXT 文件
- c# - 将上传的 .csv 转换为 memorystream,然后转换为 .Net Core 中的 c# 数据表