Как установить mongod --dbpath
очень новый для mongodb и баз данных в целом. когда я запускаю mongo
, я получаю это сообщение об ошибке:
MongoDB shell version: 2.4.9
connecting to: test
Thu Jan 30 13:03:33.170 Error: couldn't connect to server 127.0.0.1:27017
at src/mongo/shell/mongo.js:145
exception: connect failed
running mongod
Я вижу следующее:
Thu Jan 30 13:13:36.588 [initandlisten] MongoDB starting : pid=29408 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=Kimis-MacBook-Air-2.local
Thu Jan 30 13:13:36.588 [initandlisten]
Thu Jan 30 13:13:36.588 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Thu Jan 30 13:13:36.588 [initandlisten] db version v2.4.9
Thu Jan 30 13:13:36.588 [initandlisten] git version: nogitversion
Thu Jan 30 13:13:36.588 [initandlisten] build info: Darwin minilionvm.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
Thu Jan 30 13:13:36.588 [initandlisten] allocator: tcmalloc
Thu Jan 30 13:13:36.588 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb" }
Thu Jan 30 13:13:36.591 [initandlisten] journal dir=/usr/local/var/mongodb/journal
Thu Jan 30 13:13:36.591 [initandlisten] recover begin
Thu Jan 30 13:13:36.591 [initandlisten] recover lsn: 108155770
Thu Jan 30 13:13:36.591 [initandlisten] recover /usr/local/var/mongodb/journal/j._0
Thu Jan 30 13:13:36.591 [initandlisten] journal file version number mismatch got:4147 expected:4149. if you have just upgraded, recover with old version of mongod, terminate cleanly, then upgrade.
Thu Jan 30 13:13:36.592 [initandlisten] dbexception during recovery: 13536 journal version number mismatch 16711
Thu Jan 30 13:13:36.592 [initandlisten] exception in initAndListen: 13536 journal version number mismatch 16711, terminating
Thu Jan 30 13:13:36.592 dbexit:
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to close listening sockets...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to flush diaglog...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to close sockets...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: waiting for fs preallocator...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: lock for final commit...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: final commit...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: closing all files...
Thu Jan 30 13:13:36.592 [initandlisten] closeAllFiles() finished
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: removing fs lock...
Thu Jan 30 13:13:36.592 dbexit: really exiting now
когда я вручную устанавливаю свой mongo dpath на mongod --dbpath /data/db
(как и должно быть по умолчанию при установке) и поддерживайте его в терминале, все работает нормально. но как только я закрываю его, все снова ломается. мой вопрос:
- Почему мой dbpath установлен на
/usr/local/var/mongodb
?
- Как я могу исправить эту ошибку, поэтому mongo работает на моей машине?
Я предполагаю, что мне нужно либо постоянно установить dbpath на /data/db
, либо перенастроить что-то, чтобы он работал с dbpath как /usr/local/var/mongodb
i довольно новичок в командах unix, поэтому не совсем уверен, как исправить эту ошибку.
Благодарим вас за любые предложения!
поэтому, копаясь в документации mongodb, я читаю это:
"Если не указано, mongod будет искать файлы данных в каталоге по умолчанию /data/db
(в системах Windows используется каталог \data\db.) Если вы установили систему управления пакетами, проверьте файл /etc/mongodb.conf
, предоставленный ваши пакеты, чтобы увидеть конфигурацию dbpath
."
когда я посмотрел файлы в /etc/
, нет файла mongodb.conf
... однако я вижу /usr/local/etc/mongod.conf
... поэтому, если я правильно понимаю это, я должен создать файл с именем /etc/mongodb.conf
и установите для dbpath значение /data/db
.
Мне нужно также удалить материал внутри /usr/local/
?
Я думаю, что это связано с тем, как мой PATH настроен... может кто-нибудь объяснить мне, как исправить это в unix, поэтому у меня не будет этой проблемы?
Еще раз спасибо!
Ответы
Ответ 1
Сначала у вас будет файл конфигурации в /etc/mongodb.conf
, поэтому это звучит как домашняя установка, в которой будут использоваться более стандартизированные пути. Все /data/db/
вещь упоминается в руководстве много установки документации.
Таким образом, в основном из вашего журнала сервер не работает, он выключается, поэтому оболочке нечего подключать. Похоже, у вас были какие-то нечистые выключения/перезапуски, которые привели к несогласованности.
Очистите файлы в журнале /usr/local/var/mongodb/journal/
в вашей конфигурации.
Также:
sudo rm /var/lib/mongodb/mongod.lock
На всякий случай, хотя эта часть выглядит чистой. А затем перезагрузите.
Ответ 2
Попробовал это только на Mac:
Вы должны быть добрыми!
Ответ 3
Вы можете установить dbPath в файле mongodb.conf:
storage:
dbPath: "/path/to/your/database/data/db"
Это формат файла конфигурации на основе YAML (начиная с версии Mongodb 2.6), поэтому обратите внимание на отсутствие вкладок только пробелов и пробела после ":"
обычно этот файл находится в системах * nix здесь:/etc/mongodb.conf
Итак, просто запустите
$ mongod -f /etc/mongodb.conf
И начнется процесс mongod...
(на Windows что-то вроде)
> C:\MongoDB\bin\mongod.exe -f C:\MongoDB\mongod.conf
Ответ 4
Для меня это должно иметь:
mongod --dbpath=/whatever/data/path
Ответ 5
mongod --port portnumber --dbpath /path_to_your_folder
По умолчанию номер порта равен 27017, а путь -/var/lib/mongodb
Вы можете установить свой собственный номер порта и путь, по которому вы хотите сохранить всю свою базу данных.
Ответ 6
Вы также можете настроить mongod для запуска при запуске, чтобы он автоматически запускался при запуске, а dbpath - при настройке. Для этого попробуйте:
mongod --smallfiles --config/etc/mongod.conf
Тег --smallfiles
существует, если вы получите ошибку с размером. Это, конечно, необязательно. Это должно решить вашу проблему, а также автоматизировать настройку mongodb.
Ответ 7
очень просто:
sudo chown mongodb:mongodb /var/lib/mongodb/mongod.lock
Ответ 8
sudo mongod --dbpath ~/data
Это заставило меня работать.
Ответ 9
Сценарий: MongoDB (версия v4.0.9).
- Установите пользовательскую папку (с именем: myCustomDatabases), где хранятся базы данных.
- В пользовательской папке (с именем: myCustomDatabases) необходимо создать базу данных (с именем: newDb).
Разрешить:
-
Создать пользовательскую папку (с именем: myCustomDatabases):
D:>md myCustomDatabases
-
Запустите 'mongod --dbpath', указав путь к пользовательской папке (с именем: myCustomDatabases):
mongod --dbpath "D:\myCustomDatabases"
-
Из другого "cmd" запустите "mongo":
D:>mongo
3.1. Показать все базы данных, хранящиеся в пользовательской папке (с именем: myCustomDatabases):
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
3.2. Используйте базу данных с именем newDb:
> use newDb
switched to db newDb
3.3. Показать все базы данных, хранящиеся в пользовательской папке (с именем: myCustomDatabases):
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
!!! Заметил, что newDb НЕ в списке !!!
3.4. Нужно создать коллекцию с документом, который создаст базу данных newDb.
> db.Cats.insert({name: 'Leo'})
WriteResult({ "nInserted" : 1 })
Операция вставки ({name: 'Leo'}) создает: базу данных newDB и коллекцию Cats, поскольку они не существуют.
3.5. Теперь новая созданная база данных newDb будет отображаться в списке.
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
newDb 0.000GB
3,6. Теперь в пользовательской папке D:\myCustomDatabases есть база данных newDb.
Ответ 10
Создать каталог БД в доме, внутри БД другой каталог данных
cd
mkdir db
cd db
mkdir data
затем введите это command--
mongod --dbpath ~/db/data