关于本地连接阿里云服务器中的mongodb数据库被拒绝问题的一些处理记录
1.被拒绝原因总共有以下几点
- mongodb没有启动
- mongodb配置文件没有放开其它地方访问权限(默认是127.0.0.1)
- 阿里云ecs安全组没有设置访问权限
2.排查问题
2-1. 确认是否 mongodb 没有启动
登录到服务器,执行以下命令查看是否启动成功
sudo systemctl status mongod
打印信息中 Active: active (running)就表示启动成功了,如果没有,那就启动mongodb
sudo systemctl start mongod
#或者 sudo systemctl restart mongod
2-2. 确认mongodb配置文件没有放开其它地方访问权限
查看配置文件中 /etc/mongod.conf
cat /etc/mongod.conf
结果中有这么一段
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
bindIp 我这里设置的是全网都可以访问。 如果这里有,但是还是不能访问,有可能是配置修改后没有生效,使用命令看看启动的mongo数据看配置
mongodb启动成功后,执行以下命令连接数据库
mongosh
在交互式命令中 test>执行以下命令来查看mongdb的一些信息
db.adminCommand({getCmdLineOpts: 1})
会看到如下信息
{
argv: [ '/usr/bin/mongod', '-f', '/etc/mongod.conf' ],
parsed: {
config: '/etc/mongod.conf',
net: { bindIp: '0.0.0.0', port: 27017 },
...
},
ok: 1
}
其中net: { bindIp: '0.0.0.0', port: 27017 },其中 bindIp 就是允许哪里可以访问这个数据库,默认是 127.0.0.1;
出现配置文件和启动中打印的配置不一样问题可能是编辑配置文件后没有重启数据库导致的,重启;或者清除缓存在重启;
2-3. 确认阿里云ecs安全组没有设置访问权限
阿里云打开对应的实例 》 详情 》安全组 查看有没有放开,没有放开就行了
通过以上操作应该就能访问了