До сих пор я не указывал каталог данных MongoDB, и у меня был только один основной раздел размером 30 ГБ.
Мне просто не хватило места и добавил новый жесткий диск. Как я могу передать свои данные (которые, очевидно, в /var/lib/mongodb/
) и настроить MongoDB так, чтобы все работало с нового диска, не влияя на мою существующую установку?
mongodb
filepath
data-files
Марк Гилл
источник
источник
sudo chmod o+rx /media
например, если ваша точка монтированияmedia
. R + x должен быть доступен для «других» групп и пользователей с первой точки монтирования.Ответы:
Короткий ответ:
--dbpath
параметр в MongoDB позволит вам контролировать, из какого каталога MongoDB читает и записывает свои данные.Запустил бы mongodb и вставил файлы
/usr/local/mongodb-data
.В зависимости от вашего дистрибутива и установки MongoDB, вы также можете настроить
mongod.conf
файл для этого автоматически:Официальные 10gen Linux-пакеты ( Ubuntu / Debian или CentOS / Fedora ) поставляются с базовым файлом конфигурации, который находится в нем
/etc/mongodb.conf
, и служба MongoDB считывает это при запуске. Вы можете внести свои изменения здесь.источник
/etc/mongodb.conf
соответствии с этим решением. Затем, после запускаmongod
, я увидел, что/data/db
было использовано. Почему обновление mongodb.conf не повлияло на то, где mongod хранил базу данных? (Обратите внимание, что использование--dbpath
аргумента сработало./etc/mongodb.conf
и обновление, которое прекрасно работает для меня.chown
предоставлен пользователю mongod для сценариев запуска службы.Решено за 2 минуты простоя :)
Просто переместите папку, добавьте символическую ссылку, а затем настройте разрешения.
источник
chmod -R o+x /<home>
. см .: stackoverflow.com/a/38193187/205049Permission denied: "/var/lib/mongodb"
Вот как выглядит /home/../mongodb/mongodb/:drwxrwxr-x 3 mongodb mongodb 4096 oct 13 09:32 ../ drwxr-xr-x 2 mongodb nogroup 4096 oct 13 09:29 journal/ -rw------x 1 mongodb nogroup 67108864 sep 23 14:44 local.0* -rw------x 1 mongodb nogroup 16777216 sep 23 14:44 local.ns* -rwxr-xr-x 1 mongodb mongodb 0 oct 13 09:29 mongod.lock*
mv
команду, если вы запускаете команду mv из lib, у вас больше нет mongodb toln
toСледующая команда будет работать для вас, если вы хотите изменить путь по умолчанию. Просто введите это в каталоге bin mongodb.
Если вы хотите переместить существующие данные, просто скопируйте все папки из существующего каталога data \ db в новый каталог, прежде чем выполнять команду.
А также остановите существующие службы mongodb, которые работают.
источник
Создайте файл mongod.cfg в папке MongoDB, если у вас его нет. В моем случае: C: \ Users \ ivanbtrujillo \ MongoDB
Затем отредактируйте mongod.cfg с помощью блокнота и добавьте строку со следующим (наш пользовательский dbpath):
В этом файле вы также должны указать лог-путь. Мой файл mongod.cfg:
Если вы используете mongoDB в качестве службы Windows, вы должны изменить этот ключ и указать файл mongod.cfg.
Чтобы установить mongodb в качестве службы Windows, выполните следующую команду:
Откройте regedit.exe и перейдите по следующему маршруту:
Сервис MongoDB не работает, мы должны отредактировать ключ ImagePath, удалить его содержимое и поставить следующее:
Мы указываем Монго, что это конфигурационный файл и его лог-путь.
Затем, когда вы запускаете сервис mongodb, он работает.
Вот полное руководство по установке mongoDB в Windows: http://ivanbtrujillo.herokuapp.com/2014/07/24/install-mongodb-as-a-service-windows/
Надеюсь, поможет,
источник
Скопируйте содержимое
/var/lib/mongodb
в/data/db
. Файлы , которые должны искать должны иметь имена , какyour_db_name.ns
иyour_dbname.n
гдеn
это число , начиная с 0. Если вы не видите такие файлы в/var/lib/mongodb
, искать их в файловой системе.После копирования используйте
--dbpath=/data/db
при запуске MongoDB с помощьюmongod
команды.источник
Вот что я сделал, надеюсь, это будет полезно для всех остальных:
шаги:
/etc/rc.d/rc.mongod stop
, если вы используете что-то другое, например, systemd, вам следует проверить документацию, как это сделать.mkdir /mnt/database
chown mongodb:mongodb -R /mnt/database/mongodb
) - спасибо @DanailGabenski.cp -R /var/lib/mongodb/ /mnt/database/
rm -rf /var/lib/mongodb/
ln -s /mnt/database/mongodb /var/lib/mongodb
/etc/rc.d/rc.mongod start
mongo
подключиться к вашей базе данных, чтобы увидеть, все ли в порядке)Нет необходимости говорить, что вы должны быть осторожны, когда делаете это, особенно с этим,
rm -rf
но я думаю, что это лучший способ сделать это.Никогда не пытайтесь копировать каталог базы данных во время работы mongod, потому что могут быть службы, которые пишут / читают из него, что изменит содержимое вашей базы данных.
источник
chown mongodb:mongodb -R /mnt/database/mongodb
Если установлен через
apt-get
Ubuntu 12.04, не забудьтеchown -R mongodb:nogroup /path/to/new/directory
. Кроме того, измените конфигурацию в/etc/mongodb.conf
.Напоминаем, что
mongodb-10gen
пакет теперь запускается через upstart, поэтому скрипт config находится в/etc/init/mongodb.conf
Я только что прошел через это, надеюсь, гуглеры посчитают это полезным :)
источник
Для меня пользователь был
mongod
вместоmongodb
sudo chown mongod:mongod /newlocation
Вы можете просмотреть журналы ошибок, если служба не работает:
/var/log/mongodb/mongod.log
источник
В Debian / Ubuntu вам нужно отредактировать скрипт /etc/init.d/mongodb. На самом деле, этот файл должен извлекать настройки из /etc/mongodb.conf, но, похоже, он не тянет каталог по умолчанию (вероятно, ошибка)
Это что-то вроде хака, но добавление их в скрипт заставило его запуститься правильно:
Добавить:
изменение:
чтобы:
источник