Localização do banco de dados mongodb no mac

91

Eu sou meio novo no Mac, assim como no mongodb.

Estou com uma dúvida esquisita, acessando o banco de dados criado usando mongodb no mac?

Eu sei, no windows existe uma pasta chamada c: \ data \ db, onde meus arquivos de banco de dados são armazenados.

Como e onde no mac, o banco de dados é armazenado.

Eu me lembro de fazer algo como

sudo mkdir -p /data/db
sudo chown `id -u` /data/db

para criar essa pasta no mac, mas não encontrei nenhum arquivo de banco de dados nesta pasta, embora tenha criado um banco de dados.

Onde estão os arquivos de banco de dados salvos no mac?

Qualquer ajuda seria muito apreciada.

Espanhol 89
fonte

Respostas:

93

O diretório de dados padrão para MongoDB é /data/db.

Isso pode ser substituído por uma dbpathopção especificada na linha de comando ou em um arquivo de configuração.

Se você instalar o MongoDB por meio de um gerenciador de pacotes como Homebrew ou MacPorts, essas instalações geralmente criam um diretório de dados padrão diferente de / data / db e define o dbpath em um arquivo de configuração.

Se um dbpath foi fornecido mongodna inicialização, você pode verificar o valor no mongoshell:

db.serverCmdLineOpts()

Você veria um valor como:

"parsed" : {
    "dbpath" : "/usr/local/data"
},
Stennie
fonte
1
Também é importante notar que seu mongodservidor não precisa ser executado como o rootusuário. Você precisa garantir que suas permissões de diretório de dados incluam acesso de leitura / gravação para a conta de usuário que o mongodservidor está usando.
Stennie
1
Quando eu insiro getCommandLineOpts (), obtenho algo como `ReferenceError: getCommandLineOpts não está definido (shell): 1´. Qualquer ajuda??
Espanhol 89
4
Qual versão do MongoDB você está usando? Você deve ser capaz de verificar isso com db.serverStatus().version. Acredito que o shell helper para getCommandLineOpts()foi adicionado no MongoDB 2.0. Você também pode tentar: db.getSiblingDB("admin").runCommand({getCmdLineOpts:1}).
Stennie
Eu uso a versão 2.2.2, quando tentei db.getSiblingDB("admin").runCommand({getCmdLineOpts:1}), obtive algo como { "argv" : [ "./bin/mongod" ], "parsed" : { }, "ok" : 1 }Isso significa que meu diretório de banco de dados não está definido?
Espanhol
Entendi cara, criei uma pasta chamada data na raiz e uma subpasta db. Agora está mostrando o caminho. Muito obrigado pela ajuda.
Espanhol 89
192

Se o mongodb for instalado via Homebrew, o local padrão é:

/ usr / local / var / mongodb

Veja a resposta de @simonbogarde para a localização de outros arquivos interessantes que são diferentes ao usar o Homebrew.

Mark Edington
fonte
Eu estava procurando por alguma luz na escuridão, verificando a fórmula em github.com/Homebrew/homebrew/blob/master/Library/Formula/… obrigado.
alexserver
131

Obrigado @Mark, sempre esqueço disso. Depois de instalar o MongoDB com Homebrew:

  • As bases de dados são armazenados no diretório / usr / local / var / mongodb / diretório
  • O arquivo mongod.conf está aqui: /usr/local/etc/mongod.conf
  • Os logs do mongo podem ser encontrados em / usr / local / var / log / mongodb /
  • Os binários do mongo estão aqui: / usr / local / Cellar / mongodb / [versão] / bin
simonbogarde
fonte
Isso acertou o prego na cabeça. Obrigado
Mark Pieszak - Trilon.io
2
Quando eu verifico / usr / local / var / mongodb / , o diretório está vazio. E não, eu não alterei o dbpath padrão do mongoldb. Você pode me ajudar a encontrar o arquivo de banco de dados?
Nishi Bangar
Adicione um link simbólico para ele: sudo ln -s / usr / local / var / mongodb / data / db
TheJeff
22

Tive o mesmo problema, com a versão 3.4.2

para executá-lo (se você instalou com o homebrew) execute o processo assim:

$ mongod --dbpath /usr/local/var/mongodb
Runnerdave
fonte
Esta solução resolveu meu problema depois de atualizar para v4.2.5 via Homebrew.
Matt Hagemann
10

Acabei de instalar o mongodb 3.4 com homebrew . (Brew install mongodb) Ele procura / data / db por padrão.

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

Aqui está o resultado da execução do mongod.

csonuryilmaz
fonte
9
Isso se você começar mongoddiretamente do terminal. Se você usar brew services start mongodb, o processo usará o arquivo de configuração no /usr/local/etc/mongod.confqual, por sua vez, especifica um dbPathde/usr/local/var/mongodb
Molomby
Obrigado @Molomby pela contribuição. Eu não comecei assim, eu nem sabia dessa forma. :)
csonuryilmaz
1

Env : macOS Mojave 10.14.4

Instalar : homebrew

Localização :/usr/local/Cellar/mongodb/4.0.3_1

Nota : Se atualizar a versão por brew upgrade mongo, a pasta 4.0.4_1será removida e substituída pela pasta da nova versão

jyjin
fonte