我正在远程服务器上运行 mongodb,并且我想在本地计算机中访问
我尝试删除 mongodb.lock 文件,也尝试过sudo mongod --repair,但这些都不适合我。
当我正在做mongo <ip address>:27017/testDB或只是简单地做时,就会发生这种情况mongo <ip address>
我越来越:
[js] Error: couldn't connect to server <ip address>:27017, connection attempt failed: SocketException: Error connecting to <ip address>:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed
Run Code Online (Sandbox Code Playgroud)
mongo.cfg 文件如下所示:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: C:\Program Files\MongoDB\Server\4.0\data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: C:\Program Files\MongoDB\Server\4.0\log\mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
#processManagement:
#security:
authorization: 'enabled'
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
Run Code Online (Sandbox Code Playgroud)
打开 mongodb 配置文件:
乌班图:
sudo nano /etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)
窗户:
MongoDB_installation_Directory/Server/{version}/bin/mongod.cfg
// MongoDB_installation_Directory could be C://MongoDB or C://Program Files/MongoDB
Run Code Online (Sandbox Code Playgroud)
编辑:
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 #default value is 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
重启 MongoDB 服务器:
sudo service mongod restart
Run Code Online (Sandbox Code Playgroud)
默认情况下,mongodb 配置为仅允许来自本地主机的连接。我们需要允许远程连接。在配置文件中,转到网络接口部分并将 binIp 从 更改127.0.0.1为0.0.0.0 允许来自所有 IP 地址的连接。
您还可以启用 MongoDB Auth:
打开 mongo shell:
mongo
Run Code Online (Sandbox Code Playgroud)
在 mongo shell 内访问管理数据库。创建一个新的管理员用户。
> use admin;
> db.createUser({
user: "admin",
pwd: "password",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
});
Run Code Online (Sandbox Code Playgroud)
现在创建数据库用户并授予他们各自数据库的角色。
> db.createUser({
user: "user",
pwd: "user_password",
roles: [
{ role: "userAdmin", db: "yourDB" },
{ role: "dbAdmin", db: "yourDB" },
{ role: "readWrite", db: "yourDB" }
]
});
Run Code Online (Sandbox Code Playgroud)
在同一个配置文件中,
security:
authorization: 'enabled'
Run Code Online (Sandbox Code Playgroud)
重新启动 MongoDB:
乌班图:
sudo service mongod restart
Run Code Online (Sandbox Code Playgroud)
视窗:
"MongoDB_installation_Directory/Server/{version}/bin/mongod.exe" --dbpath path/to/db
// MongoDB_installation_Directory could be C://MongoDB or C://Program Files/MongoDB
Run Code Online (Sandbox Code Playgroud)
使用远程身份验证访问 mongo:
# to access the admin database
mongo -u admin -p password {public IP}/admin
# to access the other databases
mongo -u user -p user_password {public IP}/yourDB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8012 次 |
| 最近记录: |