当前位置:网站首页>Neo4j 基本使用创建并启动数据库
Neo4j 基本使用创建并启动数据库
2022-08-07 21:04:00 【华为云】
文章目录
0. 背景
对于大量节点和关系的知识图谱导入neo4j,一般是使用neo4j-admin import。而使用neo4j-admin import导入neo4j的时候需要数据库是空的,即如果已经有同名数据库需要预先清空。如果有多个海量节点和关系的知识图谱,则只能分开独立存储于各自的数据库中。那么如何在一台服务器上同时启动多个neo4j,以应对多个数据库呢?
1. 默认方式启动neo4j
在安装完neo4j后,我们已经在系统环境变量(/etc/profile)添加如下信息:
export NEO4J_HOME=/data/dev_tool/neo4j-community-3.4.6export PATH=$PATH:$NEO4J_HOME/bin所以,我们可以直接在终端窗口上用neo4j start命令启动服务。
查看此时采用conf/neo4j.conf启动的neo4j服务对于网络端口的占用情况:

可以看到,neo4j进程50934占用了3个端口:7687、7473和7474。其中7687是默认的bolt端口;7473是https端口;7474是http端口。
2. 方案0:指定配置文件启动neo4j
启动neo4j的方法下述两种是等价的:
nohup ./bin/neo4j console = neo4j start我们尝试看下,指定配置文件的启动方式可设置的参数有哪些?
从上述的返回结果可以看出Neo4j is already running(pid 50934)
所以,./bin/neo4j start --help其实没有help这个参数,该命令之间尝试启动一个neo4j 进程。
尝试网传类似如下命令启动一个新的neo4j服务:
./bin/neo4j start -config neo4j_pkubase.conf -run neo4j_pkubase.pid -log neo4j_pkubase.log注定会失败的。查看./bin/neo4j中的脚本内容或者./bin/neo4j --help。可以看出,该脚本只有这几个参数:console | start | stop | restart | status | version。根本不接受配置文件作为参数传入。再细看./bin/neo4j中的脚本内容,能够进一步确认,里面具体的参数信息都是基于安装文件的一级目录下展开的。
3. 方案1:使用多个安装文件
由于上述在同一个运行脚本中通过指定配置文件的方案行不通,所以我们尝试使用多个安装文件。这里我们在neo4j官网上又下载了最新版本的neo4j(neo4j-community-3.5.12),原来已经下载的neo4j版本是neo4j-community-3.4.6。注意,需要预先将环境变量中的neo4j注释掉。具体来说是将/etc/profile中:
export NEO4J_HOME=/data/dev_tool/neo4j-community-3.4.6 export PATH=$PATH:$NEO4J_HOME/bin注释。
为了使得端口号不冲突,我们这里修改neo4j-community-3.5.12中配置文件的bolt、http 和 https 端口号。由于环境变量已经取消了,需要分别进入各自的目录运行./bin/neo4j start。开启两个neo4j服务如下图所示:

如果上述的环境变量没有注释,直接在neo4j-community-3.5.12的bin目录下启动neo4j:
另外,修改环境变量之后,除了source /etc/profile之外,还需要重新开一个终端才能够真正生效。
4. 方案2:使用docker
4.1 拉取 neo4j 镜像
查看可用的 neo4j 镜像:
docker search neo4j结果如下:
拉取镜像:
docker pull neo4j那么我们拉取的这个镜像具体对应哪个版本呢?我们去https://hub.docker.com/ 查看细节:
点击进去可以看出对应的版本号是3.5.12:
4.2 创建 neo4j 容器
创建容器:
docker run --name=neo4j_pkubase -it -p 7473:7473 -p 7474:7474 -p 7687:7687 -d neo4j其中参数
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
我们这里用-p参数将本地端口和容器的端口绑定,完成映射。
我们可以查看此时的端口占用情况:

从上图可以看出,端口的映射是通过docker-proxy启动的代理进行转发的,每个端口都需要启动一个docker-proxy代理服务。
停止容器:
docker container stop neo4j_pkubase也可以直接kill掉一个容器服务:docker container kill neo4j_pkubase
运行容器:
启动一个已有的容器:
docker container start neo4j_pkubase进入容器:
使用下面命令进入一个已经在运行的容器:
docker exec -it neo4j_pkubase /bin/bash删除容器:
docker container rm neo4j_pkubase4.3 创建多个 neo4j 容器
为了使用本地已经有的配置文件,需要在创建 容器的时候使用映射:
(1)创建一个用于存储 ownthink 知识图谱的数据库:
docker run --name=neo4j_ownthink -it -p 7473:7473 -p 7474:7474 -p 7687:7687 -v $NEO4J_HOME/conf:/conf -v $NEO4J_HOME/data:/data -v $NEO4J_HOME/certificates:/certificates -v $NEO4J_HOME/import:/import -d neo4j这里之所以加入certificates主要是因为懒,之前已经构建好了ownthink知识图谱,账号也创建了,不想改了,直接映射就好了。
(2)创建一个用于存储 pkubase 知识图谱的数据库:
docker run --name=neo4j_pkubase -it -p 7483:7483 -p 7484:7484 -p 7688:7688 -v $NEO4J_HOME/conf_pkubase:/conf -d neo4j
在网页上通过ip:7484端口号即可访问 容器中的 neo4j。
创建完之后,修改密码为neo4jpku,账号依然是neo4j
边栏推荐
猜你喜欢

Win7系统下System Idle Process占用率高怎么办

Largebin Attack原理详解

主机基础设施如何使用 Zadig 做持续交付

Mathematical Symbols Reference Manual

win7不显示文件扩展名怎么办 win7显示文件扩展名方法

OpenHarmony pixel unit

116. Fill each node of the next node pointer on the right side - sequence traversal

Unity 最新UnityWebRequest下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享

《MySQL核心知识》第7章:插入、更新、删除

Unity's latest UnityWebRequest download, while displaying the download progress, and displaying the network speed, posted it today to share with you
随机推荐
怎么打开win7任务管理器的六种最详细方法
webstrom 插件开发(一)
【LeetCode】875.爱吃香蕉的珂珂
What risk fund accounts?Handle the fund account the safest?
leetcode 232. Implement Queue using Stacks 用栈实现队列(简单)
苹果怎么装双系统 苹果电脑双系统安装教程
笔记本怎样手写 笔记本电脑如何使用手写功能
Better and more modern terminal tool than XShell!
redis-集群-2-哨兵模式
测试工程师如何做到初级测试管理(个人思考)?
What to do if Win7 opens word and prompts "Cannot open file Normal because there is an error in the content"
Thymeleaf
How to check your broadband account and password How to check your broadband account and password
云计算学习7——云计算OpenStack运维基础
打开方式默认怎么修改 怎么更改文件的打开方式
在阿里云进行磁盘扩容操作后,ECS实际使用磁盘并没有扩容?阿里云ECS磁盘扩容操作
Salesforce中国区解散,谁是替代的最佳选择?
PROFINET 建立连接的原理
【三年面试五年模拟】算法工程师的独孤九剑秘籍(第七式)
Unity 热更新Addressables修改资源缓存路径(下载路径)