CentOS 5.x Linux с MongoDB 2.0.1 (пробовал основной и устаревший)
Работает MongoDB:
root 31664 1.5 1.4 81848 11148 ? Sl 18:40 0:00 ./mongod -f mongo.conf -vvvvv --fork
Использование простой оболочки для подключения к серверу не выполняется:
[[email protected] bin]# ./mongo
MongoDB shell version: 2.0.1
connecting to: test
Mon Oct 31 18:41:32 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
Веб-интерфейс на порту 28017 загружается отлично, как и использование оболочки MongoDB с удаленного хоста Linux. Также может быть telnet на localhost: 27017, что означает отсутствие блокировки портов. На этом аппарате не работает SELinux. Я также попытался явно указать localhost:2017/db
безрезультатно.
$ ./mongo remote-ip:27017
MongoDB shell version: 2.0.1
connecting to: remote-ip:27017/test
> show dbs
local 0.03125GB
>
Журналы полностью посвящены теме:
.....
Mon Oct 31 18:40:34 [initandlisten] fd limit hard:1024 soft:1024 max conn: 819
Mon Oct 31 18:40:34 [initandlisten] waiting for connections on port 27017
Mon Oct 31 18:40:34 BackgroundJob starting: snapshot
Mon Oct 31 18:40:34 BackgroundJob starting: ClientCursorMonitor
Mon Oct 31 18:40:34 BackgroundJob starting: PeriodicTask::Runner
Mon Oct 31 18:40:34 [websvr] fd limit hard:1024 soft:1024 max conn: 819
Mon Oct 31 18:40:34 [websvr] admin web console waiting for connections on port 28017
Устранение клиента оболочки mongo показывает только один проблемный вызов:
[pid 31708] connect(4, {sa_family=AF_INET, sin_port=htons(27017), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EBADF (Bad file descriptor)
Файловая система чистая, без ограничений ulimit (выполняется как root для тестирования). Я вижу из strace, что клиент mongo
пытается подключиться через TCP (AF_INET
), но поскольку он локальный, а MongoDB создает сокет для файлов, есть ли способ сказать клиенту подключиться через это вместо этого? Или еще лучше, почему клиент будет бросать EBADF?
EDIT: Мой основной Mongo conf:
dbpath=/root/mongodb-linux-i686-2.0.1/data
logpath=/root/mongodb-linux-i686-2.0.1/logs/mongo.log
slowms=15
rest=1