跳到主要内容
版本:1.0

快速入门

Neo4j 是一个高性能的 NoSQL 图形数据库,它将事物之间的关系存储为数据库技术,广泛用于知识图谱,社交关系链,商品推荐,IT架构,商品主数据等领域。Neo4j 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。

Neo4j 官方提供了三个版本:Neo4j Community Edition, Neo4j Enterprise Edition, Neo4j Desktop

在云服务器上部署 Neo4j 预装包之后,请参考下面的步骤快速入门。

准备​

部署 Websoft9 提供的 Neo4j 之后,需完成如下的准备工作:

  1. 在云控制台获取您的 服务器公网IP地址
  2. 在云控制台安全组中,确保 Inbound(入)规则 下的 TCP:80 和 7687 端口已经开启
  3. 在服务器中查看 Neo4j 的 默认账号和密码
  4. 若想用域名访问 Neo4j,务必先完成 域名五步设置 过程

Neo4j 初始化向导​

详细步骤​

  1. 使用 SSH 客户端连接 Neo4j 所在的服务器,输入 cypher-shell 命令,并登录(不知道密码?)

    $cypher-shell
    username: neo4j
    password: *****
    Connected to Neo4j 4.1.0 at neo4j://localhost:7687 as user neo4j.
    Type :help for a list of available commands or :exit to exit the shell.
    Note that Cypher queries must end with a semicolon.
    neo4j@neo4j>
  2. 输入命令 CALL dbms.showCurrentUser(); 查看当前用户

    neo4j@neo4j> CALL dbms.showCurrentUser();
    +--------------------------+
    | username | roles | flags |
    +--------------------------+
    | "neo4j" | admin | [] |
    +--------------------------+
    1 row available after 22 ms, consumed after another 1 ms
  3. 体验图形化管理工具 Neo4j Browser

    Neo4j Browser

官方文档:Neo4j Documentation

出现问题?​

若碰到问题,请第一时刻联系 技术支持。也可以先参考下面列出的问题定位或 FAQ 尝试快速解决问题:

能够访问 Neo4j Browser,但是连接数据库报错?

您的服务器对应的安全组 7687 端口没有开启(入规则),导致无法连接数据库

为什么 Neo4j Browser 中 Roles 显示为空?

Neo4j 社区版不支持 Roles,故显示为空

Neo4j 入门向导​

下面以 分析电影数据 作为一个任务,帮助用户快速入门:

用范例数据分析​

控制台提供了一个经典范例 Movie Graph,根据范例提供的向导可以完成如下动作:

  • 创建:将电影数据插入图形
  • 查找:检索单个电影和演员
  • 查询:发现相关的演员和导演
  • 解决:分析某个演员的六度空间关系
  1. 登录 Neo4j Browser

  2. 打开:【Sample Scripts】>【Example Graphs】>【Movie Graph】,点击2/8页下的【Create】图标 Neo4j 使用范例数据

  3. 立即可见已经建立了关系的数据 Neo4j 使用范例数据

  4. 根据向导依次完成后续的页面中的范例

自建数据并分析​
  1. 登录 Neo4j Browser,运行下面的命令录入三条节点数据

    create (n:Person { name: 'Tom Hanks', born: 1956 }) return n;
    create (n:Person { name: 'Robert Zemeckis', born: 1951 }) return n;
    create (n:Movie { title: 'Forrest Gump', released: 1951 }) return n;

    Neo4j 增加数据

  2. 运行查询所有节点数据的命令,便可以看到图形化展示出的数据

    match(n) return n;

    Neo4j 增加数据

  3. 接下来运行下面的命令,给节点创建关系

    MATCH (a:Person),(b:Movie)
    WHERE a.name = 'Robert Zemeckis' AND b.title = 'Forrest Gump'
    CREATE (a)-[r:DIRECTED]->(b)
    RETURN r;
  4. 再次运行查询节点数据的命令 match(n) return n; Neo4j 增加数据

导入数据进行分析​

参考:KGData 行业图谱数据

Neo4j 常用操作​

开启远程访问​

  1. Neo4j 所在的服务器的安全组,需开启 7687 端口

  2. 确保Neo4j 配置文件 中没有限制外网IP访问(默认 0.0.0.0 表示允许)

    # With default configuration Neo4j only accepts local connections.
    # To accept non-local connections, uncomment this line:
    dbms.default_listen_address=0.0.0.0

用户管理​

Neo4j 提供了详细的用户管理和角色管理功能(仅企业版支持)

# 显示所有用户
SHOW USERS;
CALL dbms.security.listUsers();

# 创建新用户,第三个参数表示 requridchangepassword
CALL dbms.security.createUser('username','password',false);

# 删除用户
CALL dbms.security.deleteUser('username');

详情参考官网文档:User and role management

图形化工具​

Neo4j 提供了多种图形化工具,有基于 Web 的版本,也有支持 Windows, Linux, macOS 等桌面版本。

在使用图形化工具之前,请确保开启了远程访问。

Neo4j Browser​

Neo4j Browser 是开发人员与图形进行交互的工具。它是Neo4j数据库的企业版和社区版的默认界面。

  1. 本地浏览器访问:http://域名 或 http://服务器公网IP, 访问 Neo4j Browser Neo4j Browser

  2. 选择【bolt://】的URL模式,输入用户名和密码(不知道密码?),可能还需提示立即修改密码 修改Neo4j密码

Pick neo4j:// for a routed connection, bolt:// for a direct connection to a DBMS. 选择 bolt:// 速度更快

  1. 系统登录到控制台,初始化安装完成 Neo4j 控制台

  2. 通过:【Database Information】>【server user add】 增加新用户 Neo4j 增加用户

  3. 通过:【Cloud Services】>【Clear local data】 退出 Neo4j Browser Neo4j 增加用户

Neo4j Desktop​

Neo4j Desktop 是开发人员使用本地Neo4j数据库的便捷方式。

  1. 下载

  2. 双击安装至完成,然后到 Neo4j 官网上注册,获取一个秘钥

  3. 激活 Neo4j Desktop

  4. 连接到远程 Neo4j 数据库,开始使用

Neo4j Bloom​

探索和可视化图形数据,这是一个付费的工具。

重置密码​

常用的 Neo4j 重置密码相关的操作主要有修改密码和找回密码两种类型:

修改密码​

修改密码只需登录服务器后运行一条命令即可:

下面的示例是将旧密码neo4j更改为新密码neo4j123:

echo "
ALTER CURRENT USER SET PASSWORD FROM 'neo4j' TO 'neo4j123';
" | cypher-shell -u neo4j -p neo4j -d system

找回密码​

如果用户忘记了密码,通过配置文件临时去掉验证,然后设置密码,再复原的方法找回密码:

  1. 停止 Neo4j

    sudo systemctl stop neo4j
  2. 修改 Neo4j 的配置文件,将#dbms.security.auth_enabled=false 改成

    dbms.security.auth_enabled=false
  3. 重新启动 Neo4j 服务后,开始修改密码

    sudo systemctl start neo4j
    cypher-shell -d system

    neo@system> ALTER USER neo4j SET PASSWORD 'mynewpass';
    neo@system> :exit
  4. 复原配置文件

  5. 重启 Neo4j 服务

以上方案来自官方文档:Password and user recovery

Neo4j 参数​

Neo4j 应用中包含 Nginx, Neo4j-browser 等组件,可通过 通用参数表 查看路径、服务、端口等参数。

下面仅列出 Neo4j 本身的参数:

路径​

运行 neo4j console 命令查看安装相关的路径:

Neo4j 程序路径:/var/lib/neo4j
Neo4j 配置文件路径:/etc/neo4j/neo4j.conf
Neo4j 日志路径:/var/log/neo4j
Neo4j 插件路径:/var/lib/neo4j/plugins
Neo4j 数据路径:/var/lib/neo4j/data
Neo4j 证书路径:/var/lib/neo4j/certificates
Neo4j 启动路径:/var/run/neo4j

更多安装路径请查看 neo4j.conf 文件,配置文件设置参考此处

端口​

端口号用途必要性
7687Neo4j Browser 远程连接 Neo4j database可选

更多的端口:Port on Configuration file

版本​

neo4j-admin -V
neo4j version

服务​

sudo systemctl start | stop | restart | status neo4j

命令行​

Neo4j 通过了一系列的命令行工具,用于管理服务、导入数据、分析数据,详情参考:Neo4j Tools

Cypher Shell​

Neo4j 提供了默认的命令行工具Cypher Shell,Cypher Shell用于运行查询和执行管理任务。它通过加密的二进制协议Bolt进行通信。

root@neo4j-test:~# cypher-shell
username: neo4j
password: *****
Connected to Neo4j 3.5.14 at bolt://localhost:7687 as user neo4j.
Type :help for a list of available commands or :exit to exit the shell.
Note that Cypher queries must end with a semicolon.
neo4j>

neo4j-admin​

Neo4j Admin is the primary tool for managing your Neo4j instance. It is a command-line tool that is installed as part of the product and can be executed with a number of commands. Some of the commands are described in more detail in separate sections.

$ neo4j-admin help
Usage: neo4j-admin [-hV] [COMMAND]
Neo4j database administration tool.
-h, --help Show this help message and exit.
-V, --version Print version information and exit.
Commands:
help Displays help information about the specified command
memrec Print Neo4j heap and pagecache memory settings recommendations.
dump Dump a database into a single-file archive.
store-info Print information about a Neo4j database store.
report Produces a zip/tar of the most common information needed for remote assessments.
load Load a database from an archive created with the dump command.
check-consistency Check the consistency of a database.
import Import a collection of CSV files.
set-default-admin Sets the default admin user.
This user will be granted the admin role on startup if the system has no roles.
set-initial-password Sets the initial password of the initial admin user ('neo4j'). And removes the requirement to
change password on first login.

neo4j​

$neo4j -h
Usage: neo4j { console | start | stop | restart | status | version }

API​

The Neo4j REST API Documentation