2011-01-29 4 views
19

Я установил Монго и bson_ext теперь я создал .RB файл со следующим содержимым ::Монго - рубин проблема соединения

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") 

Однако я получаю следующее сообщение об ошибке на выполнение кода

[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>' 

Пожалуйста, помогите!

+6

Действительно ли ваш сервер mongo работает? Что происходит, когда вы выполняете telnet localhost 27017? –

+3

Если mongo не работает, просто сделайте это в другом терминале: 'mongod' –

ответ

17

Это определенно связано с тем, что ваш сервер mongo не работает. Поскольку вы работаете в Ubuntu, попробуйте сделать sudo /etc/init.d/mongodb start, а затем посмотрите, работает ли ваш код.

+0

в моем init.d. нет mongodb. – Chani

+0

Ваш sommand возвращает команду не найдена – Chani

+4

У вас есть mongo, установленный на вашем компьютере (я имею в виду не только драгоценный камень, я имею в виду реальный сервер mongo). Если нет, вам необходимо установить его: 'sudo apt-get install mongodb'. –

43

было это случилось несколько раз сейчас, и вот это решение, которое работает для меня:

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

У меня была аналогичная проблема после нечистого выключения и удаления блокировки. Благодаря! – vise

+0

сделал трюк для меня тоже. Благодаря! – asenovm

+0

Спасибо, @Globalkeith! Просто запустил обновление на ubuntu и перезапустил. Непослушный убунту. – Tass

3

Я просто столкнулся с этим из-за моей/и т.д./хост файл, не содержащий запись для «локальный» - следовательно, Ruby не смог разрешить «localhost». Я полагаю, вы можете жёстко 127.0.0.1 в код, а не «локальный» - или исправить/и т.д./хосты содержат:

127.0.0.1 локальный

0

На макинтош, используя отвар я нашел что brew info mongodb, а затем с использованием

или mongod --config /usr/local/etc/mongod.conf работал!

0

Иногда просто недостаточно места.

исключение initAndListen: 15926 Недостаточно свободного места для журналов, прекращение

1

Если вы на Mac и используется Brew, перезапуск службы решил это для меня:

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

Вы можете найти эту информацию, запустив brew info mongodb.

Смежные вопросы