首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到副本集节点的主节点[<Moped::#<Moped::Cluster resolved_address="10.10.4.131:27017">]

无法连接到副本集节点的主节点[<Moped::#<Moped::Cluster resolved_address="10.10.4.131:27017">]
EN

Stack Overflow用户
提问于 2015-06-19 09:18:17
回答 2查看 2.1K关注 0票数 0

在我本地的Mac上,我想在我的网络中的一台服务器上运行一个rake任务。到远程mysql数据库的所有种子都可以正常工作。但是,当我尝试为mongodb数据设定种子时,我得到了以下错误:

代码语言:javascript
复制
bundle exec rake db:seed RAILS_ENV=staging
rake aborted!
Moped::Errors::ConnectionFailure: Could not connect to a primary node for replica set 
#<Moped::Cluster:70258359778560 @seeds=[<Moped::Node resolved_address="10.10.4.131:27017">]>
/Users/donato/.rvm/gems/ruby-2.1.2@core/gems/moped-2.0.4/lib/moped/cluster.rb:254:in `with_primary'

我可以使用capistrano部署到该服务器。所以我知道这不是网络问题。我也已经尝试过解决方案here。我删除了mongod.lock,然后运行了service mongod restart,但没有成功。然而,在这个问题中,他试图在本地主机上运行它,而我想在我的网络内的另一台计算机上运行它。我能做什么?

EN

回答 2

Stack Overflow用户

发布于 2015-06-19 10:36:33

好了,我解决了。显然,mongodb默认不允许远程连接。它将仅在本地接口上可用,因此只能在机器本身内访问:

代码语言:javascript
复制
# netstat -tulpn | grep mongod
tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      12963/mongod  

要解决此问题,请查找mongodb配置文件的位置:

代码语言:javascript
复制
# find / -type f -name mongod*
/etc/mongodb.conf

然后编辑文件并添加,然后添加计算机的专用ip地址(如果远程计算机与本地计算机在同一网络中,否则也必须添加公共ip地址):

代码语言:javascript
复制
bind_ip = 127.0.0.1,10.10.4.131

然后重启mongodb,检查它是否在监听内网ip (除了环回接口):

代码语言:javascript
复制
service mongod restart
# netstat -tulpn | grep mongod
tcp        0      0 10.10.4.131:27017           0.0.0.0:*                   LISTEN      12963/mongod        
tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      12963/mongod     

如果您有防火墙,请打开端口:

代码语言:javascript
复制
iptables -A INPUT -p tcp --dport 27017 -j ACCEPT

然后从本地计算机确认您现在可以远程访问该端口:

代码语言:javascript
复制
$ nc -z 10.10.4.131 27017
Connection to 10.10.4.131 port 27017 [tcp/*] succeeded!

现在你就知道了。现在,我们可以从本地机器中为临时mongodb数据库设定种子:

代码语言:javascript
复制
bundle exec rake db:seed RAILS_ENV=staging
票数 0
EN

Stack Overflow用户

发布于 2015-10-08 22:17:43

这是因为您没有正确地停止mongodb,并且创建了mongodb锁。只需删除mongob lock.Follow这两步

1. 1.sudo rm /var/lib/mongodb/mongod.lock

2. 2.sudo服务mongodb启动

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30928418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档