2013-09-18 3 views
0

Я получаю эту ошибку и не могу найти решение.MongoDB, PHP & Ubuntu - не найдено серверов-кандидатов

У меня есть mongoDB, установленный на сервере Ubuntu вместе с PHP, установка работает нормально, и я могу без проблем получить доступ к mongo через терминал (SSH с помощью шпателя), но при попытке получить к нему доступ через любой PHP приложение Я получаю «Нет серверов-кандидатов», хотя в протоколе указано, что соединение было принято.

Я попытался настроить bind_ip на сервер ip, до 127.0.0.1, на localhost и ничего не работает.

Дополнительная информация: - Я работаю в автономном режиме. - начиная с Монго mongod --fork --auth --port 27017 --logpath /var/log/mongodb/server1.log --logappend --dbpath/вар/Библиотека/MongoDB/данных/дБ/

У кого-нибудь есть идеа?

Спасибо.

+0

версия драйвера и MongoDB версия ? – Sammaye

+0

Мой phpinfo говорит: Версия \t 1.4.3 – user1111718

+0

Как вы настроили приложение?Его ошибка означает, что он пытается подключиться к набору реплик – Sammaye

ответ

0

Эта ошибка возникает для меня, когда я запускаю MongoDB с репликацией (опция replSet), и по какой-либо причине нет первичных серверов.

Например, после перезапуска Первичного, выбор нового Первичного, кажется, занимает некоторое время, но ничего, кроме Вторичного.

Вы сказали, что не работаете с репликацией, но находитесь в режиме «standalone» ... other questions Я видел, что предлагаю вам убедиться, что вы используете современные версии драйверов MongoDB и PHP (от источник Ubuntu 10gen apt-get). Также дважды проверьте, что вы можете получить доступ к Монго из же серверов PHP на в случае, если есть вопросы брандмауэр: mongo mongohost1.server.com:27107 -uUSERNAME -pPASSWORD

Было бы полезно, чтобы увидеть строку соединения вы передаете в драйверу MongoClient() PHP. Это будет выглядеть примерно так, если вы не используете репликацию:

mongodb://USERNAME:[email protected]:27017 

И будет выглядеть примерно так, если вы используете репликацию:

mongodb://USERNAME:[email protected]:27017,host2.server.com:27017,host3.server.com:27017/?replicaSet=my_replica_set 

Если вы используете репликацию, убедитесь, что вы указываете Первичный сервер Mongodb как один из серверов (драйвер должен определить, какой из них является Первичным, и определить, изменяется ли первичное изменение).

Если все правильно настроено, проверьте, действительно ли у вас есть первичный. Возможно, что-то не так, что вынуждает MongoDB не выбирать Первичный. Вы можете войти в приложение командной строки Монго/консоли и запустить это, чтобы проверить состояние всех участников репликации:

rs.status()

Я бегу PHP 5.3, MongoDB 2.4.8, MongoDB PHP Driver 1.4.5, Ubuntu 12.04.

(я предполагаю, что этот старый пост был решен как-то, но я оказался здесь с подобным вопросом, поэтому я думал, что я мог бы дать ответ, чтобы помочь людям в будущем устранить свои проблемы.

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