Os seus dados têm relacionamentos que tabelas SQL não conseguem representar de forma limpa. Uma consulta como “quem são os amigos dos amigos do Allan que compraram um produto que usuários da mesma cidade também compraram” vira um pesadelo de JOINs em bancos relacionais. O Neo4j foi feito para exatamente esse tipo de consulta.
TL;DR: Instale e configure o Neo4j no Ubuntu, proteja com autenticação e coloque o banco rodando localmente.
Stack: Neo4j, Ubuntu, systemd, Cypher
Nível: Iniciante
Tempo de leitura: ~8 min
Pense no Neo4j como um mapa em vez de uma planilha. Na planilha você guarda dados em linhas e busca por coluna. No mapa, cada ponto sabe quem são seus vizinhos. O Neo4j dá aos seus dados essa mesma consciência espacial.
Instalando o Neo4j no Ubuntu
1. Adicionar a chave GPG do repositório
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
2. Adicionar o repositório do Neo4j
echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
3. Atualizar os pacotes
sudo apt update
4. Instalar o Neo4j
sudo apt install neo4j
5. Iniciar o serviço
Inicie o Neo4j pela primeira vez. Dê alguns segundos para ele inicializar antes de tentar conectar.
sudo systemctl start neo4j
6. Habilitar auto-inicialização no boot
Sem isso, você teria que iniciar o Neo4j na mão toda vez que o servidor reiniciar. Não é agradável às 3 da manhã quando algo dá errado.
sudo systemctl enable neo4j
Configuração de Segurança
Por padrão, o Neo4j roda sem exigir autenticação. Habilite agora antes de expor isso para qualquer coisa além do localhost.
7. Editar o arquivo de configuração
sudo nano /etc/neo4j/neo4j.conf
Encontre e descomente a linha abaixo (remova o # do início):
dbms.security.auth_enabled=true
8. Reiniciar o Neo4j
sudo systemctl restart neo4j
9. Definir a senha do usuário padrão
O Neo4j vem com as credenciais padrão neo4j/neo4j. Conecte pelo shell para trocar a senha imediatamente.
cypher-shell -u neo4j -p neo4j
Dentro do Cypher shell, defina uma nova senha e saia:
ALTER USER neo4j SET PASSWORD 'suaNovaSenha';
:exit
Acessando o Neo4j
- Interface web: http://localhost:7474
- Usuário padrão: neo4j
- Senha: a que você definiu no Passo 9
Comandos Úteis
sudo systemctl status neo4j # Verificar status do serviço
sudo systemctl stop neo4j # Parar o serviço
sudo systemctl restart neo4j # Reiniciar o serviço
sudo journalctl -u neo4j # Ver logs
Resolução de Problemas
Se o Neo4j não estiver respondendo, verifique estas três coisas:
- Se o serviço está rodando:
sudo systemctl status neo4j - Se a porta 7474 está aberta:
sudo netstat -tulpn | grep 7474 - Se o firewall permite a porta 7474:
sudo ufw status
Desinstalando o Neo4j
sudo apt remove neo4j
sudo apt purge neo4j
sudo apt autoremove
O que você construiu
Você tem uma instância do Neo4j rodando no Ubuntu, protegida com autenticação, como um serviço de sistema que sobrevive a reinicializações. O banco está acessível pelo navegador e pelo cypher-shell CLI. A partir daqui, comece a modelar seu domínio como nós e relacionamentos, e rode consultas Cypher em dados reais.
Próximos passos
- Carregue dados com LOAD CSV ou a ferramenta de importação do Neo4j, e escreva suas primeiras consultas MATCH para percorrer relacionamentos.
- Experimente o driver oficial Python (pacote neo4j) para conectar de um serviço backend e rodar Cypher programaticamente.
- Se estiver rodando em um servidor remoto, configure o Neo4j para escutar em um IP específico e restrinja o acesso no firewall, em vez de deixar aberto em todas as interfaces.
Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.