镜像拉取
## https://hub.docker.com/_/neo4j/tags
docker pull neo4j:4.4.9-community ## 注意社区版和企业版
部署启动
基础说明
容器部署默认用户名必须是 neo4j
,--privileged
授予最高权限 生产环境请在前面创建文件夹的时候授予文件夹 neo4j用户权限
chown -R neo4j:neo4j /home/neo4j/*
docker run -d --name container_name \ //-d表示容器后台运行 --name指定容器名字
-p 7474:7474 -p 7687:7687 \ //映射容器的端口号到宿主机的端口号
-v /home/neo4j/data:/data \ //把容器内的数据目录挂载到宿主机的对应目录下
-v /home/neo4j/logs:/logs \ //挂载日志目录
-v /home/neo4j/conf:/var/lib/neo4j/conf //挂载配置目录
-v /home/neo4j/import:/var/lib/neo4j/import \ //挂载数据导入目录
-v /home/neo4j/plugins:/plugins \ //插件
--env NEO4J_AUTH=neo4j/password \ //设定数据库的名字的访问密码
neo4j //指定使用的镜像
容器部署
预备文件夹
mkdir -p /home/neo4j/data && mkdir -p /home/neo4j/logs && mkdir -p /home/neo4j/conf && mkdir -p /home/neo4j/import && mkdir -p /home/neo4j/plugins
启动
docker run -d --privileged --name neo4j-cebon -p 7474:7474 -p 7687:7687 -v /home/neo4j/data:/data -v /home/neo4j/logs:/logs -v /home/neo4j/conf:/var/lib/neo4j/conf -v /home/neo4j/import:/var/lib/neo4j/import --env NEO4J_AUTH=neo4j/pwdneo4j neo4j:4.4.9-community
访问
## 7474 网页可视化 7687数据库连接地址
localhost:7474
预见性问题说明
## 新版默认开启外部所有IP访问;
dbms.connectors.default_listen_address=0.0.0.0 //指定连接器的默认监听ip为0.0.0.0,即允许任何ip连接到数据库
## 导入数据报错解决办法
dbms.directories.import=import //默认导入文件的文件夹位置 容器启动后默认没有这个配置,因此导入数据会报错,所以请配置后则前面挂在导入数据目录生效
导入mysql数据
- 先导出到csv
- 上传到前面的挂载数据导入目录
/home/neo4j/import
- 打开可视化页面 7474
- 输入导入语句
load csv with headers from "file:///department.csv" as line create(n:department{dept_id:line.id,dept_name:line.dept_name,dept_pid:line.parent_id}) return n
创建变量属性一定要加标签,下面的n都代表一个变量,临时生效,用完即没,n:lebel 代表给某个特定标签指定临时变量
增加
create (n:Person { name: 'wjl', id: 10001 }) return n;
create (n:Person { name: 'suc', id: 10002 }) return n;
查看
## 查询固定标签下的
match (n:Person) return n;
match (n:Person) return n.name;
## 查询所有则去掉标签即可
match (n) where n.id = 10001 return n
修改
## 变更值
match (n:Person) where n.id = 10001 set n.name = 'wmm002' return n;
##添加额外标签
match (n:Person) where n.id = 10001 set n:GroupAdmin return n;
## 增加额外属性
match (n:Person) where n.id = 10001 set n.dept_id = 1,n.nickname = '王某某' return n
## 变更完成再次查询则会发现该变量增加了标签和额外变量
## match (n) where n.id = 10001 return n
删除
## 删除指定标签的数据
MATCH (n:Person) DELETE n
## 清空库
MATCH (n) DELETE n
创建关联关系
match(a:Users),(b:department) where a.user_dept_id = b.dept_id CREATE (a)-[r:belong]->(b)
RETURN r;
评论区