MongoDB连接到AWS平均堆栈上的节点
几天来,我一直在尝试将我的mongoDB连接到MEAN stack,但没有成功。它在AWS lightsail Bitnami上运行。网站本身运行良好,除了任何具有ajax/db调用的页面,因为数据库没有连接/验证我的连接字符串 我使用的是mongo、node、express堆栈的一部分,目前我不需要也不知道任何角度。我认为这比在nodeJS上设置然后单独添加mongoDB要容易得多。我确实尝试过,首先遇到了类似的问题,我确实打算在将来学习angualar,所以从长远来看这可能更好。服务器端设置是当前的一个弱点 我正在使用猫鼬进行连接。我可以使用以下方式访问数据库: mongo admin-username root-p密码通过SSH 我还可以通过Rockmongo SSH访问数据库。目前数据库中只有一个管理员用户,即root用户 我的初始服务器/启动文件如下: server.jsMongoDB连接到AWS平均堆栈上的节点,mongodb,mean,Mongodb,Mean,几天来,我一直在尝试将我的mongoDB连接到MEAN stack,但没有成功。它在AWS lightsail Bitnami上运行。网站本身运行良好,除了任何具有ajax/db调用的页面,因为数据库没有连接/验证我的连接字符串 我使用的是mongo、node、express堆栈的一部分,目前我不需要也不知道任何角度。我认为这比在nodeJS上设置然后单独添加mongoDB要容易得多。我确实尝试过,首先遇到了类似的问题,我确实打算在将来学习angualar,所以从长远来看这可能更好。服务器端设置
const app = require('/opt/bitnami/apps/MYAPP/app.js');
require('dotenv').config({ path: 'variables.env' });
const mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect(process.env.DATABASE_CONN);
app.listen(3000,function(){
console.log("Server has started!");
});
变量.env
DATABASE_CONN = mongodb://root:password@127.0.0.1:27017/MYAPPDATABASE
我还尝试了许多其他连接字符串,将root用户交换为bitnami默认用户,等等
当我转到我的应用程序文件夹并启动服务器npm start或node server.js时,网站会启动,但出现以下mongoDB身份验证错误,以下仅为第一部分
> Server has started!
Connection error: { MongoError: Authentication failed.
at /opt/bitnami/apps/MYAPP/node_modules/mongoose/node_modules/mongodb-core/lib/con
nection/pool.js:595:61
at authenticateStragglers (/opt/bitnami/apps/MYAPP/node_modules/mongoose/node_modu
les/mongodb-core/lib/connection/pool.js:513:16)
at Connection.messageHandler (/opt/bitnami/apps/MYAPP/node_modules/mongoose/node_m
odules/mongodb-core/lib/connection/pool.js:549:5)
at emitMessageHandler (/opt/bitnami/apps/MYAPP/node_modules/mongoose/node_modules/
mongodb-core/lib/connection/connection.js:309:10)
at Socket.<anonymous> (/opt/bitnami/apps/MYAPP/node_modules/mongoose/node_modules/
mongodb-core/lib/connection/connection.js:452:17)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:597:20)
name: 'MongoError',
message: 'Authentication failed.',
ok: 0,
errmsg: 'Authentication failed.',
code: 18,
codeName: 'AuthenticationFailed' }
任何帮助或指导都将不胜感激。谢谢你
Mos.有些改进。我现在已经编辑了mongo.conf以启用无身份验证。然后我运行了mongod,它声明没有为其存储数据的/data/db文件夹。所以我创建了文件夹并再次运行mongod。现在所有页面都可以工作了,但是mongo shell命令“mongo”将无法在终端上工作 我认为这是因为mongod dbpath设置为data/db,而mongodb conf文件dbpath设置为/opt/bitnami/mongodb/data/db 因此,我试图更新mongod数据库路径,但它似乎没有更新。好的。找到解决方案 在mongo.conf文件中,我将dbpath设置为/data/db mongo shell指向/opt/bitnami/mongodb/tmp/mongodb-27017.sock$@ 转到/opt/bitnami/mongodb/bin/mongo 将/opt/bitnami/mongodb/tmp/mongodb-27017.sock$@更改为/tmp/mongodb-27017.sock$@ 可以使用sudo nano/opt/bitnami/mongodb/bin/mongo来完成此操作,然后编辑文件 仍然打开noauth,所以下一步是让我的db连接字符串进行身份验证 希望它能帮助别人 谢谢