如何解决连接到 AWS-Cloud9 上的 Mongodb 的连接错误
How to resolve connection error connecting to Mongodb on AWS-Cloud9
我正在学习使用 AWS-Cloud9 Ubuntu 环境的 'Web Dev Simplified' 教程。
在我不得不连接到 mongodb 之前,一切都很顺利。数据库似乎可以很好地安装...
sudo apt install -y mongodb
并且是 运行.
ubuntu:~/environment $ sudo systemctl status mongodb
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-06-11 13:19:28 UTC; 20min ago
Docs: man:mongod(1)
Main PID: 17781 (mongod)
Tasks: 23 (limit: 1152)
CGroup: /system.slice/mongodb.service
└─17781 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Jun 11 13:19:28 ip-172-31-16-249 systemd[1]: Started An object/document-oriented database.
本教程使用 mongoose 并在连接时抛出错误。这是连接字符串
mongoose.connect("mongodb://127.0.0.1:27017/examrooms",{useNewUrlParser: true})
const db=mongoose.connect()
这里是错误
MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
检查 mongodb.conf 文件显示以下内容
sudo cat /etc/mongodb.conf
# mongodb.conf
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
bind_ip = 127.0.0.1
#port = 27017
安全默认关闭。
所以我的 ip 是正确的,并且假设端口默认为 27017。
很明显,我正在传递一个字符串作为 uri,这是不是其他问题的征兆?也许权限?我很难过。非常感谢任何指点。
请看这里 link : https://community.c9.io/t/setting-up-mongodb/1717
sudo apt-get install -y mongodb-org
$ mkdir data
$ echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod
$ chmod a+x mongod
我现在解决了这个问题。似乎默认的 dbpath 是 /var/lib/mongodb
我需要在我的项目中创建一个数据目录,并将 dbpath 设置为 /etc/mongodb.conf
中的目录
我还需要确保为 Mongodb 设置了正确的权限才能访问这个新文件夹。在使用 AWS Cloud9 时,我使用了
sudo chown mongodb:mongodb /home/ubuntu/environemnt/data/
对教程进行了一些调整(因为其中一些已经过时),一切都很好。
我正在学习使用 AWS-Cloud9 Ubuntu 环境的 'Web Dev Simplified' 教程。 在我不得不连接到 mongodb 之前,一切都很顺利。数据库似乎可以很好地安装...
sudo apt install -y mongodb
并且是 运行.
ubuntu:~/environment $ sudo systemctl status mongodb
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-06-11 13:19:28 UTC; 20min ago
Docs: man:mongod(1)
Main PID: 17781 (mongod)
Tasks: 23 (limit: 1152)
CGroup: /system.slice/mongodb.service
└─17781 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Jun 11 13:19:28 ip-172-31-16-249 systemd[1]: Started An object/document-oriented database.
本教程使用 mongoose 并在连接时抛出错误。这是连接字符串
mongoose.connect("mongodb://127.0.0.1:27017/examrooms",{useNewUrlParser: true})
const db=mongoose.connect()
这里是错误
MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
检查 mongodb.conf 文件显示以下内容
sudo cat /etc/mongodb.conf
# mongodb.conf
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
bind_ip = 127.0.0.1
#port = 27017
安全默认关闭。 所以我的 ip 是正确的,并且假设端口默认为 27017。
很明显,我正在传递一个字符串作为 uri,这是不是其他问题的征兆?也许权限?我很难过。非常感谢任何指点。
请看这里 link : https://community.c9.io/t/setting-up-mongodb/1717
sudo apt-get install -y mongodb-org
$ mkdir data
$ echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod
$ chmod a+x mongod
我现在解决了这个问题。似乎默认的 dbpath 是 /var/lib/mongodb
我需要在我的项目中创建一个数据目录,并将 dbpath 设置为 /etc/mongodb.conf
我还需要确保为 Mongodb 设置了正确的权限才能访问这个新文件夹。在使用 AWS Cloud9 时,我使用了
sudo chown mongodb:mongodb /home/ubuntu/environemnt/data/
对教程进行了一些调整(因为其中一些已经过时),一切都很好。