如何使用neo4j在一台服务器上创建多个数据库? 我有多个客户端,我想将所有客户端信息分成不同的数据库,以避免数据泄漏。
答案 0 :(得分:36)
您需要在conf/neo4j.properties
和conf/neo4j-server.properties
中安装多个具有不同端口配置的Neo4j。
或者,您可以使用某些虚拟化或容器工具(如http // docker.io)来实现更复杂的方法。
答案 1 :(得分:9)
或为客户端的每个节点添加特殊label
,例如:ClientName
。
或者为每个客户端数据库创建一个根节点,并始终在第一个节点开始查询。
在neo4j db中,你可以有单独的子图。如果你对你的代码编程很好,就没有理由发生这样的泄漏。
答案 2 :(得分:4)
正如@ stefan-armbruster所说,使用多个Neo4j docker容器实例来运行多个数据库可能会很好
可能在docker compose文件下面应该可以帮助你这样做
version: '2'
services:
neo4j:
image: neo4j:latest
network_mode: host
restart: always
environment:
- NEO4J_AUTH: neo4j/neo4j
cap_add:
- SYS_RESOURCE
ports:
- "7474:7474"
- "7687:7687"
volumes:
- $HOME/neo4j/data:/data
将上述文件保存到docker-compose.yml后,运行命令
docker-compose up
如果你想在后台运行
docker-compose up -d
现在您应该能够以http://localhost:7474
访问数据库,如果您使用的是docker-machine,则必须使用docker-machine IP地址来访问数据库
通过维护多个包含不同端口的docker-compose文件,您可以维护多个数据库,这不仅适用于neo4j,您可以为任何类型的数据库(Mongo,Redis,RabbitMQ等)执行此操作。 p>
用于指定不同的docker compose文件,请尝试以下命令
docker-compose -f <your docker compose file name>