我有一个运行 Ubuntu 12.04 LTS 和 MongoDB 实例的 Linode 服务器(服务正在运行并且可以在本地连接),但我无法从外部源连接到该服务器。
我已将这两条规则添加到我的 IP 表中,其中 < ip address > 是我想要连接的服务器(如本 MongoDB 参考中所述):
iptables -A INPUT -s < ip-address > -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d < ip-address > -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
我在 IP 表中看到规则允许在 27017 上往返 < ip address > 连接,但是当我尝试使用如下命令从 , < ip address > 连接到我的 mongo 数据库时:
mongo databasedomain/databasename -u username -p password
我收到此错误:
2014-07-22T23:54:03.093+0000 warning: Failed to connect to databaseserverip:27017, reason: errno:111 Connection refused
2014-07-22T23:54:03.094+0000 Error: couldn't connect to server < ip address >:27017 (databaseserverip), connection attempt failed at src/mongo/shell/mongo.js:148
exception: connect failed
非常感谢任何帮助!!!!谢谢!!!
谢谢大家的帮助!
原来是iptable冲突。列出端口开放的两条规则(导致端口关闭)。
但是,如果不是因为冲突,aka 的一条评论和 manu2013 的另一条评论都是我会遇到的问题。
那么!请务必记住编辑
/etc/mongod.conf
文件并设置您的 bind_ip = 0.0.0.0
以便建立外部连接。
此外,请确保您的 iptable 中没有与 mongo 所需端口相冲突的规则(请参阅 mongodb 站点上的链接以正确设置您的 iptables)。
尝试以下操作:
sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart
对于 Ubuntu Server 15.04 和 16.04 您只需要执行此命令
sudo apt-get install --reinstall mongodb
我没有
/data/db
目录。我创建了一个并授予了 chmod 777
权限,它对我有用
对我来说,将 /var/lib/mongodb 和 /tmp/mongodb-27017.sock 的所有权更改为 mongodb 是正确的方法。
就这样做:
sudo chown -R mongodb:mongodb /var/lib/mongodb
然后:
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
然后启动或重新启动mongodb服务器:
sudo systemctl start mongod
或
sudo systemctl restart mongod
并检查状态
sudo systemctl status mongod
另一个选择是像这样修复数据库(注意:应首先预先创建 db0 目录):
mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0
这在生产环境中也是一个可以接受的选项...
我也遇到了同样的问题。在 dbpath 中创建一个目录。在我的情况下, /data/db 中没有目录。所以我创建了一个目录。现在它可以工作了。确保授予该目录权限。
就我而言,之前的版本是 3.2。我已升级到 3.6,但数据文件与新版本不兼容,因此我删除了所有数据文件,因为它对我及其工作不可用。
您可以使用
/var/log/mongodb
检查日志
我按照本教程的说明进行安装
我也犯过同样的错误。最后我发现需要设置端口号
mongo命令的默认端口号是27017
但是mongo.conf中默认的端口号是29999
这对我来说很有效
sudo service mongod restart
即使端口打开,MongoDB 目前也只监听本地地址 127.0.0.1。要允许远程连接,请将服务器的公共可路由 IP 地址添加到 mongod.conf 文件。
在编辑器中打开 MongoDB 配置文件:
sudo nano /etc/mongodb.conf
将服务器的IP地址添加到bindIP值中:
...
logappend=true
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
...
请注意,现在拥有用户名和密码的每个人都可以登录到您的数据库,您希望通过限制仅特定 IP 的连接来避免这种情况。这可以使用防火墙来完成(请阅读 Google 的 UFW 服务)。但简而言之,应该是这样的:
sudo ufw allow from YOUR_IP to any port 27017
我将bindIp:127.0.0.1更改为bindIp:0.0.0.0,之后我还重新启动了mongoDB服务器,但我仍然无法解决它总是说的问题
错误:MongoDB ConnectionException:无法连接到本地主机:27017
如何清除这个错误并连接到本地mongodb