连接到远程 mongoDB 服务器
Connecting to a remote mongoDB server
我有一台使用 SSH 连接的远程机器,我在上面安装了 mongoDB,我希望远程使用它,如何使用 nodejs 和 mongoDB compass 连接到它? localhost 是 IP ?
const db = "mongodb://what do I write here?";
const connectDB = async () => {
try {
await mongoose.connect(db, { useNewUrlParser: true, useCreateIndex: true });
console.log("MongoDB Connected...");
} catch (err) {
console.error(err.message);
process.exit(1);
}
};
connectDB();
mongoose.connect('mongodb://username:password@host:port/database')
现在 host
,是否有您可以使用的主机名或 IP?
简答
登录到您的机器,打开位于 /etc/mongod.conf
的 mongodb 配置文件并将 bindIp
字段更改为您的机器 ip 地址(与您使用的相同 ip 地址ssh 到你的机器),然后重启 mongodb 服务器。
详细解答
使用任何编辑器打开 /etc/mongod.conf
文件,如果您是 运行 桌面版,则可以使用 gedit
实用工具
sudo gedit /etc/mongod.conf
如果你是运行服务器版本,那么你可以使用vi editor命令
sudo vi /etc/mongod.conf
文件应包含以下内容:
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1 // enter your ip address here
port: 27017
setParameter:
enableLocalhostAuthBypass: false
更改 bindIp
后,您必须重新启动 mongodb,使用以下命令
sudo service mongod restart
现在您将能够连接到 mongodb 服务器,使用您用于通过 ssh 连接到系统的相同 IP 地址。
mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
先试试这个:mongoose.connect('mongodb://localhost:27017/database')
mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[database][?options]]
检查https://docs.mongodb.com/manual/reference/connection-string/
试试这个:
mongoose.connect("mongodb://localhost/<database-name>", { useNewUrlParser: true });
const db = mongoose.connection
db.on('error', (error) => console.error(error));
db.once('open', () => console.log('Connected to Database'));
确保 运行 MongoDB
mongod --config /usr/local/etc/mongod.conf
如果您正在使用 MongoDb 指南针
- 在您的服务器的 Inbound 中打开 27017 端口
- 形成一个 link 就像 mongodb://11.11.111.11 以防你不打算使用 auth
- 点击连接
基本上 link 是 mongodb://[username:password@]host1[:port1][...hostN[:portN]][/[defaultauthdb][?选项]]
更多信息here
我有一台使用 SSH 连接的远程机器,我在上面安装了 mongoDB,我希望远程使用它,如何使用 nodejs 和 mongoDB compass 连接到它? localhost 是 IP ?
const db = "mongodb://what do I write here?";
const connectDB = async () => {
try {
await mongoose.connect(db, { useNewUrlParser: true, useCreateIndex: true });
console.log("MongoDB Connected...");
} catch (err) {
console.error(err.message);
process.exit(1);
}
};
connectDB();
mongoose.connect('mongodb://username:password@host:port/database')
现在 host
,是否有您可以使用的主机名或 IP?
简答
登录到您的机器,打开位于 /etc/mongod.conf
的 mongodb 配置文件并将 bindIp
字段更改为您的机器 ip 地址(与您使用的相同 ip 地址ssh 到你的机器),然后重启 mongodb 服务器。
详细解答
使用任何编辑器打开
/etc/mongod.conf
文件,如果您是 运行 桌面版,则可以使用gedit
实用工具sudo gedit /etc/mongod.conf
如果你是运行服务器版本,那么你可以使用vi editor命令
sudo vi /etc/mongod.conf
文件应包含以下内容:
systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: journal: enabled: true processManagement: fork: true net: bindIp: 127.0.0.1 // enter your ip address here port: 27017 setParameter: enableLocalhostAuthBypass: false
更改
bindIp
后,您必须重新启动 mongodb,使用以下命令sudo service mongod restart
现在您将能够连接到 mongodb 服务器,使用您用于通过 ssh 连接到系统的相同 IP 地址。
mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
先试试这个:mongoose.connect('mongodb://localhost:27017/database')
mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[database][?options]]
检查https://docs.mongodb.com/manual/reference/connection-string/
试试这个:
mongoose.connect("mongodb://localhost/<database-name>", { useNewUrlParser: true });
const db = mongoose.connection
db.on('error', (error) => console.error(error));
db.once('open', () => console.log('Connected to Database'));
确保 运行 MongoDB
mongod --config /usr/local/etc/mongod.conf
如果您正在使用 MongoDb 指南针
- 在您的服务器的 Inbound 中打开 27017 端口
- 形成一个 link 就像 mongodb://11.11.111.11 以防你不打算使用 auth
- 点击连接
基本上 link 是 mongodb://[username:password@]host1[:port1][...hostN[:portN]][/[defaultauthdb][?选项]]
更多信息here