После успешной модернизации с Mongo 2.4.10 на Mongo 2.6.0 (я проверил, что могу запросить базу данных в оболочке) У меня возникли проблемы с моим ранее работающим php-кодом.
Uncaught exception 'MongoConnectionException' with message 'Failed to connect to: localhost:27017: Remote server has closed the connection'
а также указывает на строку, которая выглядит так: $m = new Mongo();
Я использую Php 5.5.10-1+deb.sury.org~precise+1
с 1.4.5 phpMongo Driver
(который, я думаю, не был обновлен для поддержки версии 2.6). Кто-нибудь испытал такую же проблему после обновления 2.6?
Вы всегда хотите обновить драйвер перед обновлением сервера.
У MongoDB PHP Driver версии 1.5.0 (и более поздних версий) есть поддержка MongoDB 2.6.0 (и более поздняя версия), где определенные вещи не будут работать при использовании версий 1.4.x (или более ранних версий) PHP-драйвера MongoDB.
Я настоятельно рекомендую вам перейти на версию 1.5.1 для PHP-драйвера MongoDB. Кроме того, объект «Монго» устарел, вы действительно хотите использовать класс «MongoClient».
Что, как говорится. Это должно работать нормально. Что говорит ваш mongod.log? Можете ли вы подключиться к localhost: 27017, используя оболочку mongo
?
На самом деле все оказалось проще (я должен обвинять только меня, а не водителя php mongo):
Я использовал новый Mongo (); для подключения к базе данных (которая, по-видимому, устарела)
При запуске этого класса будет выдано предупреждение E_DEPRECATED и отключена подтвержденная запись.
Как ни странно, я никогда не видел этого в своих журналах, хотя у меня E_ALL
как мой уровень предупреждения. Во всяком случае, после того, как я изменил рекомендованный способ, новый MongoClient (); проблема была решена.