Эта ошибка возникает для меня, когда я запускаю 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.
(я предполагаю, что этот старый пост был решен как-то, но я оказался здесь с подобным вопросом, поэтому я думал, что я мог бы дать ответ, чтобы помочь людям в будущем устранить свои проблемы.
версия драйвера и MongoDB версия ? – Sammaye
Мой phpinfo говорит: Версия \t 1.4.3 – user1111718
Как вы настроили приложение?Его ошибка означает, что он пытается подключиться к набору реплик – Sammaye