Ошибка "Не удалось отсоединить файл сокета" в MongoDB 3.0
Я новичок в MongoDB. Я пытаюсь установить MongoDb 3.0 на Ubuntu 13.0 LTS, который является виртуальной машиной на хосте Windows 7. Я успешно установил MongoDB (пакеты и т.д.), Но когда я выполняю команду sudo service mongod start
, я получаю следующую ошибку в файле журнала /var/log/mongodb/mongod.log. Может ли кто-нибудь помочь мне понять эту ошибку. В интернете нет ничего, что связано с этим.
2015-04-23T00: 12: 00.876-0400 я CONTROL ***** SERVER RESTARTED ***** 2015-04-23T00: 12: 00.931-0400 E NETWORK [initandlisten] Не удалось отсоединить сокет файл /tmp/mongodb -27017.sock errno: 1 Операция не разрешена 2015-04-23T00: 12: 00.931-0400 я - [initandlisten] Фатальное утверждение 28578 2015-04-23T00: 12: 00.931-0400 я - [initandlisten]
Ответы
Ответ 1
Я сам исправил эту проблему, удалив файл mongodb-27017.sock
. Я запустил службу после удаления этого файла, который работал нормально. Тем не менее, я до сих пор не уверен в первопричине проблемы. Вывод команды ls - lat /tmp/mongodb-27017.sock
теперь
srwx------ 1 mongodb nogroup 0 Apr 23 06:24 /tmp/mongodb-27017.sock
Ответ 2
Альтернативный ответ, предоставленный KurioZ7, вы можете просто установить разрешения файла .sock для текущего пользователя:
sudo chown `whoami` /tmp/mongodb-27017.sock
Это делает трюк для меня, если я хочу запустить mongod без sudo. Если я удалю файл, как в KurioZ7s, ответьте, я просто получу ту же ошибку при следующем запуске моей машины.
Ответ 3
Наиболее вероятной причиной этого было то, что процесс mongod был в какой-то момент начат пользователем root. Поэтому файл сокета (/tmp/mongodb-27017.sock) принадлежал пользователю root. Процесс mongod обычно работает под собственным выделенным пользователем, и у этого пользователя не было прав на удаление этого файла.
Решение, как вы уже выяснили, состояло в его удалении. Тогда mongodb смог воссоздать его с правильными разрешениями. Это должно сохраняться после перезагрузки, если mongodb запускается с использованием сценариев инициализации или под правильной учетной записью пользователя.
Ответ 4
Эта проблема возникает, если вы используете команду
mongod
Перед использованием команды
sudo service mongod start
Чтобы устранить проблему, выполните следующие действия:
Задайте соответствующие разрешения для файла:
/tmp/mongodb-27017.sock
ИЛИ
Удалите файл
/tmp/mongodb-27017.sock
Запустить
sudo service mongod start && mongod
Ответ 5
$ sudo mongod
он решает проблему для меня
Ответ 6
Для UNIX-ориентированных операционных систем в качестве альтернативы ответом, предоставленным Bastronaut, вы также можете указать файл .sock для сохранения в папку, в которой mongod имеет полные права пользователя (в соответствии с тем, как вы используете mongod), таким образом, mongod также сможет удалить файл .sock при завершении работы. Папка по умолчанию, в которую сохраняется файл .sock, - '/tmp'. Чтобы указать другую папку, используйте настраиваемый файл конфигурации mongodb, например "mongodb.conf", и добавьте к нему следующее:
net:
unixDomainSocket:
pathPrefix: "anotherFolder"
После этого вы можете запустить mongod с помощью команды:
$ mongod --config /path/to/mongodb.conf
Вы можете прочитать документацию по адресу: https://docs.mongodb.org/manual/reference/configuration-options/#net.unixDomainSocket.pathPrefix
Ответ 7
Я новичок в CentOS и MongoDB. Когда я даю "Mongo" для запуска демона, я получаю следующую ошибку. Может кто-нибудь, пожалуйста, направьте меня к поиску решения для этого. Попробуйте следующие команды, чтобы попытаться подключить его к серверу. 1. sudo service mongod start 2. запуск mongodb.service 3. sudo mongod все было напрасно !!
"2019-04-28T20: 07: 19.772 + 0530 E QUERY [thread1] Ошибка: не удалось подключиться к серверу 127.0.0.1:27017, попытка подключения не удалась: [email protected]/mongo/shell/mongo.js: 229: 14 @(подключение): 1: 6 "Это мое сообщение об ошибке