Mongodb где хранятся файлы баз данных
Я хочу экспортировать все коллекции в MongoDB командой:
Результат:
коллекция не указана!
В руководстве сказано, что если вы не укажете коллекцию, все коллекции будут экспортированы.
Однако, почему это не работает?
Моя версия MongoDB - 2.0.6.
Какую версию MongoDB вы используете? Вики-документация для mongoexport предполагает, что это инструмент командной строки для экспорта коллекции. Возможно, возможность экспортировать несколько коллекций для более новой версии? Если вы хотите сделать резервную копию всех коллекций в базе данных, mongodump экспортирует все коллекции в BSON.
Похоже, что опция использования mongoexport для всех коллекций является запланированной функцией, которая еще не была запланирована: SERVER-201 .. поэтому mongodump в настоящее время является вашим лучшим вариантом для экспорта полной базы данных. Не составит труда написать эквивалент mongoexport, используя один из клиентских драйверов MongoDB .
Для справки: документация MongoDB гласит: избегайте использования mongoimport и mongoexport для полных производственных резервных копий экземпляров. Они не надежно сохраняют все типы данных BSON с широкими возможностями, поскольку JSON может представлять только подмножество типов, поддерживаемых BSON. Используйте mongodump и mongorestore, как описано в методах резервного копирования MongoDB, для такого рода функций. Так что это не только для ленивых людей, как утверждает Ментор Река, но и предпочтительный способ сделать это.
Для ленивых, пользуйтесь mongodump , это быстрее:
И «восстановить / импортировать» его (из directory_backup / dump /):
Таким образом, вам не нужно иметь дело со всеми коллекциями индивидуально. Просто укажите базу данных.
Обратите внимание, что я бы рекомендовал не использовать mongodump / mongorestore для больших хранилищ данных . Это очень медленно, и как только вы получите 10/20 ГБ данных, восстановление может занять несколько часов.
Формат данных, используемый mongodump от версии 2.2 или новее, несовместим с более ранними версиями mongod. Не используйте последние версии mongodump для резервного копирования старых хранилищ данных.
Я полагал, что команда восстановления - "mongorestore -b DATABASE ./dump-folder" (где ./dump-folder - это путь или ваши экспортированные данные).
Я написал для этого скрипт bash. Просто запустите его с 2 параметрами (имя базы данных, каталог для хранения файлов).
Следуйте приведенным ниже инструкциям, чтобы создать mongodump на сервере и импортировать его на другой сервер / локальный компьютер с именем пользователя и паролем.
Для экспорта всех коллекций с помощью mongodump используйте следующую команду
mongodump -d database_name -o directory_to_store_dumps
Для восстановления используйте эту команду
Я сделал, mongodump -d mongo -o path\to\Desktop\blog и я получаю SyntaxError: missing ; before statement от CMD. :(
Пожалуйста, дайте нам знать, где вы установили свою БД Mongo? (либо в Ubuntu, либо в Windows)
Для Windows:
- Перед экспортом необходимо подключиться к базе данных Mongo в командной строке cmd и убедиться, что вы можете подключиться к локальному хосту.
- Теперь откройте новое приглашение cmd и выполните команду ниже,
mongodump - имя базы данных db - путь для сохранения,
например: mongodump --db mydb --out c: \ TEMP \ op.json
Для Ubuntu:
- Войдите в свой терминал, где установлена БД Mongo, и убедитесь, что вы можете подключиться к вашей БД Mongo.
- Теперь откройте новый терминал и выполните команду ниже,
mongodump -d имя базы данных -o имя файла для сохранения,
например: mongodump -d mydb -o output.json
Предыдущие ответы объяснили это хорошо, я добавляю свой ответ, чтобы помочь в случае, если вы имеете дело с удаленной базой данных, защищенной паролем
Обратите внимание, что это не позволяет надежно сохранить все типы данных с расширенным BSON, поскольку JSON может представлять только подмножество типов, поддерживаемых BSON. Используйте mongodump и mongorestore, как описано в методах резервного копирования MongoDB, для такого рода функций. ( документы )
Если вы в порядке с форматом bson, вы можете использовать утилиту mongodump с тем же флагом -d. Он выгрузит все коллекции в каталог дампа (по умолчанию его можно изменить с помощью опции -o) в формате bson. Затем вы можете импортировать эти файлы с помощью утилиты mongorestore.
Вы можете использовать, mongo --eval 'printjson(db.getCollectionNames())' чтобы получить список коллекций, а затем выполнить моноэкспорт для всех из них. Вот пример в рубине
Это хорошо, но вы, вероятно, захотите, чтобы регулярное выражение out.scan было не жадным. out.scan(/\".+?\"/).map < |s| s.gsub('"', '') >
Мне нужна была версия пакетного скрипта Windows. Эта ветка была полезна, поэтому я подумал, что я тоже внесу свой ответ.
У меня были некоторые проблемы с использованием set /p COLLECTIONS=
После многих запутанных примеров я обнаружил, что очень простой подход работает для меня.
Я просто хотел взять дамп базы данных из локальной системы и импортировать его на удаленный экземпляр:
на локальной машине:
затем я скопировал свой дамп на серверную машину:
тогда из родительского каталога дампа просто:
и это импортировало базу данных.
при условии, что служба mongodb работает, конечно.
Если вы хотите, вы можете экспортировать все коллекции в CSV без указания --fields (будут экспортированы все поля).
Вы можете сделать это с помощью mongodump команды
Шаг 1: Откройте командную строку
Шаг 2: перейдите в папку bin вашей установки mongoDB (C: \ Program Files \ MongoDB \ Server \ 4.0 \ bin)
Шаг 3: затем выполните следующую команду
mongodump -d your_db_name -o destination_path
your_db_name = test
destination_path = C: \ Users \ HP \ Desktop
Экспортированные файлы будут созданы в папке destination_path \ your_db_name (в этом примере C: \ Users \ HP \ Desktop \ test)
Если вы хотите сбросить все коллекции во всех базах данных (что является обширной интерпретацией намерения исходного спрашивающего), используйте
Все базы данных и коллекции будут созданы в каталоге с именем «dump» в «текущем» месте.
Я понимаю, что это довольно старый вопрос и что mongodump / mongorestore явно верный путь, если вы хотите 100% точный результат, включая индексы.
Тем не менее, мне нужно было быстрое и грязное решение, которое, вероятно, было бы совместимо с предыдущими версиями MongoDB и обратно и обратно, при условии, что ничего особенного не происходит. И для этого я хотел получить ответ на оригинальный вопрос.
Есть и другие приемлемые решения выше, но этот конвейер Unix относительно короткий и приятный:
Это создает .json файл с соответствующим именем для каждой коллекции.
Обратите внимание, что имя базы данных («mydatabase») появляется дважды. Я предполагаю , что база данных является локальной и не нужно передавать учетные данные , но это легко сделать с помощью как mongo и mongoexport .
Обратите внимание, что я использую grep -v для отбрасывания system.indexes , потому что я не хочу, чтобы старая версия MongoDB пыталась интерпретировать системную коллекцию из более новой. Вместо этого я позволяю своему приложению совершать обычные ensureIndex вызовы для воссоздания индексов.
Я использую Ubuntu 16.04. Я создал базу данных MongoDB. Когда я запускаю его (с помощью команды mongod), он говорит, что база данных находится в /data/db (dbpath=/data/db).
База данных работает нормально. Но в проводнике файлов я не могу найти эту папку. Я посмотрел папку Computer и папку Home (Computer/home/).
Я также показал скрытые файлы и папки с помощью Ctrl + H.
Как я могу найти мою папку с базой данных?
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
grep dbPath /etc/mongod.conf
Согласно mongodb docs:
Значение по умолчанию путь /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath, mongodb будет использовать каталог, указанный в dbPath
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данных в каталоге / data / db.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
grep dbPath /etc/mongod.conf
Согласно mongodb docs:
Значение по умолчанию путь /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath, mongodb будет использовать каталог, указанный в dbPath
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данных в каталоге / data / db.
Я нашел /etc/mongod.conf (обратите внимание, что буквы «b» нет). Там говорится: storage: dbPath: / var / lib / mongodb. И эта папка выглядит так, как будто это база данных. Также переменной является dbPath (верхний регистр «P»). Но почему, черт возьми, когда я начинаю mongod, он говорит dbpath = / data / db? – croraf 3 December 2017 в 12:00
@croraf - /data/db является значением по умолчанию для пути, если установлено dbPath, оно отменяет это значение. Обратите внимание, что для использования /data/db в качестве фактического пути папка должна существовать и иметь правильное право собственности / разрешения. см. обновленный ответ со ссылкой на документы mongodb – Yaron 3 December 2017 в 12:34
Благодаря! Проблема заключается в выводе команды mongod «MongoDB start: pid = 2722 port = 27017 dbpath = / data / db 64-bit host = korisnik-Lenovo-Y520-15IKBN» что dbpath является / data / db. Хотя это может быть путь по умолчанию, команда запуска db должна указывать фактический путь, в моем случае / var / lib / mongodb. – croraf 3 December 2017 в 12:38
Конфигурация @croraf /etc/mongod.conf используется, только если вы Запустите MongoDB как службу или явно передайте это в командной строке: mongod --config /etc/mongod.conf. Если вы запустите mongod без каких-либо параметров, будет использоваться значение по умолчанию /data/db. Если вы запустите mongod в качестве службы на Ubuntu, dbPath будет по умолчанию задано в /etc/mongod.conf (/var/lib/mongodb). Как правило, вы хотите управлять MongoDB как услугой, чтобы обеспечить согласованную настройку между вызовами. – Stennie 4 December 2017 в 07:19
@Stennie Да, кажется, что mongodb запускается при загрузке ОС (что вы называете «услугой»). Это меня смутило. Я проверю сегодня, но, вероятно, запуск mongod дает ошибку, что порт уже связан. – croraf 4 December 2017 в 13:20
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Вы должны найти местоположение в файле конфигурации: /etc/mongod.conf
Путь по умолчанию - /data/db directory
По умолчанию MongoDB прослушивает подключения от клиентов на порту 27017 и сохраняет данные в каталоге / data / db.
Если установлено dbPath , mongodb будет использовать каталог, указанный в dbPath
Если вы хотите mongod хранить файлы данных по пути, отличному от /data/db вы можете указать dbPath . Перед началом mongod должен существовать dbPath . Если он не существует, создайте каталог и разрешения, чтобы mongod мог читать и записывать данные на этот путь. Дополнительные сведения о разрешениях см. В документации по безопасности.
Я нашел /etc/mongod.conf (обратите внимание, что буквы «b» нет). Там говорится: storage: dbPath: / var / lib / mongodb. И эта папка выглядит так, как будто это база данных. Также переменной является dbPath (верхний регистр «P»). Но почему, черт возьми, когда я начинаю mongod, он говорит dbpath = / data / db? – croraf 3 December 2017 в 12:00
@croraf - /data/db является значением по умолчанию для пути, если установлено dbPath , оно отменяет это значение. Обратите внимание, что для использования /data/db в качестве фактического пути папка должна существовать и иметь правильное право собственности / разрешения. см. обновленный ответ со ссылкой на документы mongodb – Yaron 3 December 2017 в 12:34
Спасибо! Проблема заключается в выводе команды mongod «MongoDB start: pid = 2722 port = 27017 dbpath = / data / db 64-bit host = korisnik-Lenovo-Y520-15IKBN» что dbpath является / data / db. Хотя это может быть путь по умолчанию, команда запуска db должна указывать фактический путь, в моем случае / var / lib / mongodb. – croraf 3 December 2017 в 12:38
Конфигурация @croraf /etc/mongod.conf используется, только если вы Запустите MongoDB как службу или явно передайте это в командной строке: mongod --config /etc/mongod.conf . Если вы запустите mongod без каких-либо параметров, будет использоваться значение по умолчанию /data/db . Если вы запустите mongod в качестве службы на Ubuntu, dbPath будет по умолчанию задано в /etc/mongod.conf ( /var/lib/mongodb ). Как правило, вы хотите управлять MongoDB как услугой, чтобы обеспечить согласованную настройку между вызовами. – Stennie 4 December 2017 в 07:19
@Stennie Да, кажется, что mongodb запускается при загрузке ОС (что вы называете «услугой»). Это меня смутило. Я проверю сегодня, но, вероятно, запуск mongod дает ошибку, что порт уже связан. – croraf 4 December 2017 в 13:20
Попробуйте ввести file:///data/db/ в браузере (хром или огненная лиса). Вы сможете увидеть файлы и коллекции, если у вас mongodb установлен в системе, но все будут зашифрованы, вы не сможете их прочитать в редакторе.
Создание базы данных.
По умолчанию база данных находится в папке c:/data/db
Запустим mongo.exe и создадим новую базу данных:
Сразу же установим параметры доступа (имя пользователя и пароль):
Особенностью MongoDb является то, что это документо-ориентированная база данных, и не содержит информацию о структуре, так что тут мы закончили. Сразу переходим к описанию моделей данных.
У нас будет две сущности Article (Статья) и Comment (Комментарий), и Статья будет содержать множество Комментариев:
- подключение к Mongo
- добавление статьи
- изменение статьи
- индексация
- удаление статьи
- вывод статей (фильтрация/пейджинг/сортировка)
- добавление комментариев
- удаление комметариев
- поиск
- бекап базы
По умолчанию база занимает порт 27017 на сервере (у нас как обычно localhost). Подключаемся к базе:
Для добавления объекта в коллекцию необходимо получить коллекцию по имени
Для добавления можно выполнить команду:
или (как и для изменения)
MongoDb самостоятельно добавляет поле _id — уникальный параметр. Если при выполнении команды Save у объекта будет Id существующий уже в коллекции, то выполнится апдейт этого объекта.
Для быстрого поиска мы можем добавить индекс по какому-либо полю. Для индексации используется команда
Это ускорит сортировку по этому полю.
Для удаления по id создается запрос (Query). В данном случае это
и выполняется команда:
Для вывода значений применив фильтр и отсортированных, да еще и с пейджингом используется курсор.
Например чтобы выбрать из коллекции неудаленные (IsDeleted = false) отсортированные по дате убывания (AddedDate desc) 10ю страницу (пропускаем 90 элементов и выводим 10 следующих) составляется такой курсор:
Так как MongoDb — документо-ориентированная база данных, то не существует отдельной таблицы с комменатариями, а комментарий добавляется в массив комментариев в статье, после чего статья сохраняется:
Комментарий удаляется точно так же. Мы получаем объект article, удаляем из списка комментариев текущий комментарий и сохраняем объект.
Для того чтобы найти элемент содержащий заданную подстроку необходимо задать следующий запрос:
Есть 2 проблемы так как поиск учитывает регистр, т.е. Петя != петя, и к тому же у нас есть много полей.
Первую проблему можно решить использовав регулярные выражения
Но чтобы избавится от обеих проблем сразу я создал поле Bulk куда в нижнем регистре записываются все поля + комментарии и ищу по этому полю.
Именно бекап а не репликация. Для того чтобы иметь доступ к файлу базы данных нужно выполнить lock (база продолжит работать, только в этот момент все команды записи будут кешироваться, чтобы потом выполнится). После чего базу данных можно скопировать, заархивировать и выложить на ftp. После этой процедуры базу надо разлочить (Unlock).
Команды:
Если что-то пойдет не так, то сервер БД надо будет перезапустить с командой:
Мой хост пришел с экземпляром mongodb, и в нем нет каталога / db, так что теперь мне интересно, что я могу сделать, чтобы узнать, где на самом деле хранятся данные.
Существует более свежий вопрос по этому вопросу, который дает лучший ответ: «Какой путь к базе данных по умолчанию для mongodb?» , Путь к данным будет либо по умолчанию /data/db (если файл конфигурации не используется), либо будет обнаружен через db.adminCommand("getCmdLineOpts").parsed.dbpath .
на OSX, mongo 3.0.4, я должен был использовать "db.adminCommand (" getCmdLineOpts "). parsed.storage.dbPath"
@Stennie ваш комментарий помог мне (я на Windows, поэтому я использую Robomongo), но ваша ссылка на вопрос указывает на этот вопрос, а не на намеченную цель - stackoverflow.com/a/12738557/112764 - и в 3.х, это на самом деле db.adminCommand("getCmdLineOpts").parsed.storage.dbpath
@NateJ Спасибо! Ответ на соответствующий вопрос есть примеры для MongoDB 2.6+, а также старую форму в
mongod по умолчанию расположение базы данных равно /data/db/ .
Если вы запустите ps -xa | grep mongod и не увидите, --dbpath что явно указывает mongod на просмотр этого параметра для местоположения БД, а у вас нет dbpath в нем mongodb.conf , то местоположением по умолчанию будет: /data/db/ и вы должны посмотреть там.
Проверьте /usr/local/etc/mongod.conf (файл конфигурации) и /usr/local/var/mongodb (местоположение базы данных), а также. В некоторых системах это будут значения по умолчанию.
Что говорит ваш файл конфигурации?
Если это не правильно, попробуйте это, ваши файлы базы данных будут присутствовать в списке:
Он установлен /var/lib/mongodb/* по умолчанию (Ubuntu 11.04).
Обратите внимание, что для удобства имеется также /var/lib/mongodb/mongod.lock файл с mongod PID, однако он находится в каталоге данных, который мы ищем .
На этом сервере нет каталога / var / lib, и эти две команды не работают (первая не может найти /etc/mongodb.conf, вторая - нераспознанная lsof)
В более новой версии mongodb v2.6.4 попробуйте:
Это даст вам что-то вроде этого:
И там хранятся данные.
Мой был здесь также. Для людей, которые хотели найти этот каталог, чтобы проверить размеры файлов: du -sh * | sort -hr
Я нахожу db.serverCmdLineOpts() наиболее надежный способ найти фактический путь, если вы можете подключиться к серверу. «Parsed.storage.dbPath» содержит путь, используемый вашим сервером в настоящее время, и доступен как в случае его использования в конфигурации, так и в аргументах командной строки.
Также в моем случае было важно убедиться, что значение config отражает фактическое значение (т. Е. Config не изменилось после последнего перезапуска), что не гарантируется предлагаемыми здесь решениями.
Хотя этот вопрос предназначен для Linux / Unix экземпляров Mongo, он является одним из первых результатов поиска независимо от используемой операционной системы, поэтому для будущих пользователей Windows, которые найдут это:
Если MongoDB настроен в качестве службы Windows по умолчанию, его обычно можно найти, посмотрев запись «Путь к исполняемому файлу» в свойствах службы MongoDB:
@ st78 Я знаю, но это все еще один из первых результатов поиска Google при поиске местоположения в Windows, поэтому я оставил ответ, касающийся пути Windows (как только я его выяснил), для таких людей, как я, которые наткнулись на него.
По моему опыту, расположение по умолчанию /var/lib/mongodb после того, как я
Я нашел мой здесь в системе OSX / usr / local / var / mongodb
Вопрос в том, «Как я могу найти» место хранения данных mongodb. не просто путь для конкретного пользователя или платформы.
Для Windows Перейдите в папку MongoDB \ Server \ 4.0 \ bin и откройте файл mongod.cfg в любом текстовом редакторе. Затем найдите строку, которая указывает параметр dbPath. Линия выглядит примерно так
dbPath: D: \ Program Files \ MongoDB \ Server \ 4.0 \ data
Нашел это, просто ковыряясь в /var/db . Спасибо за помощь, хотя - я уверен, что эти ответы применимы к другим системам (например, Ubuntu) и помогут другим!
Если бы вы могли как-то найти mongod.log и сделать над ним grep
Значение для dbpath является местоположением данных для mongodb !! Всего наилучшего :)
На самом деле каталог по умолчанию, в котором экземпляр mongod хранит свои данные,
/data/db в Linux и OS X,
\data\db в Windows
Если вы установили MongoDB с помощью системы управления пакетами , проверьте /etc/mongod.conf файл, предоставленный вашими пакетами, чтобы увидеть, что каталог указан.
storage.dbPath Параметр доступен только для mongod .
Сценарии инициализации пакета Linux не ожидают storage.dbPath изменений по умолчанию. Если вы используете пакеты Linux и меняете их storage.dbPath , вам придется использовать собственные сценарии инициализации и отключить встроенные сценарии.
Когда вы запускаете его, он показывает вам. Но я не знаю, можете ли вы это сделать на своем хосте. Если у вас есть доступ к командной строке и вы можете перезапустить службу, вы получите что-то вроде:
У меня странные сомнения, доступ к базе данных, созданной с помощью mongodb на Mac?
Я знаю, что в Windows есть папка c: \ data \ db, где хранятся мои файлы базы данных.
Как и где в Mac хранится база данных.
Я помню, как делал что-то вроде
чтобы создать такую папку на Mac, но я не нашел файла базы данных в этой папке, хотя я создал базу данных.
Где хранятся файлы базы данных на Mac?
Любая помощь могла бы быть полезна.
Каталог данных по умолчанию для MongoDB - /data/db .
Это можно изменить с помощью dbpath параметра, указанного в командной строке или в файле конфигурации.
Если вы устанавливаете MongoDB с помощью диспетчера пакетов, такого как Homebrew или MacPorts, эти установки обычно создают каталог данных по умолчанию, отличный от / data / db, и устанавливают путь к dbpath в файле конфигурации.
Если dbpath был предоставлен mongod при запуске, вы можете проверить значение в mongo оболочке:
Вы увидите такое значение:
Также стоит отметить, что ваш mongod сервер не должен запускаться от имени root пользователя. Вам необходимо убедиться, что ваши права доступа к каталогу данных включают доступ для чтения и записи для учетной записи пользователя, которую использует mongod сервер.
Когда я ввожу getCommandLineOpts (), я получаю что-то вроде `ReferenceError: getCommandLineOpts не определено (оболочка): 1´. Любая помощь??
Я использую версию 2.2.2, при попытке db.getSiblingDB("admin").runCommand(
Я получил его, я создал папку с именем data в корне и подпапку db. Теперь он показывает путь. Большое спасибо за помощь.
Если mongodb установлен через Homebrew, расположение по умолчанию:
/ USR / местные / var / mongodb
См. Ответ от @simonbogarde, чтобы узнать о местонахождении других интересных файлов, которые отличаются при использовании Homebrew.
Спасибо @Mark, я снова и снова об этом забываю. После установки MongoDB с Homebrew:
Читайте также: