2011-01-29 19 views
19

He instalado y bson_ext ahora han creado un archivo .rb con el siguiente contenido ::mongo - rubí mongo problema de conexión

require 'rubygems' 
require 'mongo' 

db = Mongo::Connection.new.db("mydb") 
db = Mongo::Connection.new("localhost").db("mydb") 
db = Mongo::Connection.new("localhost", 27017).db("mydb") 

Sin embargo, yo estoy consiguiendo error en la ejecución del código

[email protected]:~$ ruby firstruby.rb 
/home/ryuzaki/.rvm/gems/ruby-1.9.2-p136/gems/mongo-1.2.0/lib/mongo/connection.rb:451:in `connect': Failed to connect to a master node at localhost:27017 (Mongo::ConnectionFailure) 
    from /home/ryuzaki/.rvm/gems/ruby-1.9.2-p136/gems/mongo-1.2.0/lib/mongo/connection.rb:554:in `setup' 
    from /home/ryuzaki/.rvm/gems/ruby-1.9.2-p136/gems/mongo-1.2.0/lib/mongo/connection.rb:98:in `initialize' 
    from firstruby.rb:4:in `new' 
    from firstruby.rb:4:in `<main>' 

Por favor ayuda!

+6

¿Su servidor mongo se está ejecutando realmente? ¿Qué sucede cuando haces un 'telnet localhost 27017'? –

+3

Si mongo no se está ejecutando, simplemente hazlo en otra terminal: 'mongod' –

Respuesta

17

Esto definitivamente se debe a que su servidor mongo no se está ejecutando. Como estás en Ubuntu, intenta hacer un sudo /etc/init.d/mongodb start y luego verifica si tu código funciona.

+0

no hay mongodb en mi init.d. – Chani

+0

su sommand devuelve un comando no encontrado – Chani

+4

¿Tiene mongo instalado en su máquina (no me refiero a la gema, me refiero a un servidor mongo real). De lo contrario, deberá instalarlo: 'sudo apt-get install mongodb'. –

43

tenido que esto ocurra varias veces, y aquí está la solución que funciona para mí:

sudo rm /var/lib/mongodb/mongod.lock 
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo start mongodb 
sudo status mongodb 
+3

Tuve un problema similar después de un apagado sucio y la eliminación del bloqueo lo resolvió. ¡Gracias! – vise

+0

hizo el truco para mí también. ¡Gracias! – asenovm

+0

Gracias, @Globalkeith! Acababa de ejecutar una actualización en ubuntu y reiniciar. Naughty ubuntu. – Tass

3

acabo encontrado esto debido a mi/etc/hosts Archivo no contiene una entrada para "localhost" - en consecuencia Ruby no pudo resolver "localhost". Supongo que se puede codificar 127.0.0.1 en el código en lugar de "localhost" - o corregir/etc/hosts para contienen:

127.0.0.1 localhost

0

en un Mac, utilizando brebaje que encontré ese brew info mongodb y luego usar entonces

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents o mongod --config /usr/local/etc/mongod.conf trabajado!

0

A veces simplemente no hay suficiente espacio.

excepción en initAndListen: 15926 espacio libre insuficiente para revistas, terminando

1

Si estás en un Mac y acostumbrado Brew, reiniciar el servicio lo resolvió para mí:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist 
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist 

Puede encontrar esta información ejecutando brew info mongodb.