データベース · 1 min read · Sep 10, 2025

Debian 12にNeo4jグラフデータベースをインストールして使用する方法

Neo4jは、グラフストレージ、データサイエンス、機械学習、分析、可視化のための高性能なグラフデータベース管理システムです。Neo4jは、ノード、ノード間の関係を結ぶエッジ、およびノードとエッジの属性にデータを格納します。

このチュートリアルでは、Debian 12サーバーにNeo4jグラフデータベースをインストールして使用する手順を説明します。また、Cypher-shellを介してneo4jに接続する方法と、基本的なCypherクエリを学びます。

前提条件

進む前に、以下のものを用意してください:

  • 最低2GBのメモリを持つDebian 12サーバー。
  • sudo管理者権限を持つ非rootユーザー。

Java OpenJDKのインストール

Neo4jグラフデータベースをインストールする前に、システムにJavaをインストールする必要があります。最新のJava LTSバージョンであるJava OpenJDK 17を使用することをお勧めします。このセクションでは、Debianリポジトリを介してJava OpenJDK 17をインストールします。

まず、以下のコマンドを実行してDebianパッケージインデックスを更新し、最新のパッケージ情報を取得します。

sudo apt update

update repo

次に、以下のコマンドを実行してJava OpenJDK 17をインストールします。Debian 12リポジトリでは、default-jdkパッケージはNeo4jグラフデータベースに必要なJava OpenJDK 17を指します。

sudo apt install default-jdk

インストールを続行するにはyと入力します。

install default-jdk

Javaをインストールした後、以下のコマンドを使用してJavaのバージョンを確認します。システムにJava OpenJDK 17がインストールされているはずです。

java -version

Neo4jグラフデータベースのインストール

Javaをインストールしたら、DebianシステムにNeo4jグラフデータベースをインストールする準備が整いました。基本的な依存関係をインストールし、Neo4jリポジトリを設定し、Neo4jパッケージをインストールし、neo4jサービスを開始および有効にします。

まず、以下のコマンドを実行してDebianサーバーに基本的なシステムツールをインストールします。

sudo apt install gnupg2 apt-transport-https wget curl -y

install basic deps

次に、以下のコマンドを実行してNeo4jのGPGキーとリポジトリを追加します。この場合、Neo4jリポジトリをシステムに追加します。

wget -q -O- https://debian.neo4j.com/neotechnology.gpg.key | \  
    gpg --dearmor | sudo tee /usr/share/keyrings/neotechnology.gpg > /dev/null 2>&1   

echo "deb [signed-by=/usr/share/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest" | \  
    sudo tee /etc/apt/sources.list.d/neo4j.list

次に、Debianパッケージインデックスを更新し、以下のaptコマンドを実行してNeo4jパッケージをインストールします。

sudo apt update && sudo apt install neo4j

インストールを続行するにはyと入力します。

install neo4j

Neo4jパッケージをインストールしたら、以下のsystemctlコマンドを実行してneo4jサービスを開始および有効にします。

sudo systemctl start neo4j  
sudo systemctl enable neo4j

最後に、以下のコマンドを使用してneo4jサービスを確認し、サービスが実行中であることを確認します。

sudo systemctl status neo4j

Neo4jグラフデータベースが実行中の場合、出力にactive(running)が表示されます。

verify neo4j service

Neo4jデプロイメントの基本設定

Neo4jグラフデータベースをインストールしたので、最初のタスクはneo4j-adminコマンドラインを介してNeo4j管理者パスワードを設定し、デフォルト設定/etc/neo4j/neo4j.confを変更してリッスンアドレスと最大ヒープメモリを設定することです。

以下のneo4j-adminコマンドを実行して、Neo4jインストールのデフォルトパスワードを設定します。この例では、デフォルトのNeo4jパスワードをp4sswordに設定します。

neo4j-admin dbms set-initial-password p4ssword

Neo4jのデフォルトパスワードを設定した後、以下のnanoエディタコマンドを使用してNeo4j設定/etc/neo4j/neo4j.confを開きます。

sudo nano /etc/neo4j/neo4j.conf

dbms.default_listen_addressパラメータにローカルIPアドレスを追加して、Neo4jがローカルネットワークで実行できるようにします。次に、server.memory.heap.max_sizeパラメータを変更して、Neo4jグラフデータベースの最大ヒープメモリを設定します。この場合、Neo4jは192.168.5.15で実行され、最大ヒープメモリは4 GBになります。

dbms.default_listen_address=192.168.5.15  
  
server.memory.heap.initial_size=512m  
server.memory.heap.max_size=4096m

完了したら、ファイルを保存してエディタを終了します。

最後に、以下のsystemctlコマンドを実行して、neo4jサービスを再起動して変更を適用します。

sudo systemctl restart neo4j

initial configuration neo4j

Cypher-shellを介してNeo4jに接続する

Neo4jグラフデータベースに接続するには、cypher-shellを使用します。cypher-shellの機能は、MySQL/MariaDBのmysqlクライアントやPostgreSQLのpsqlに似ています。cypher-shellを使用すると、Neo4jグラフデータベース用の宣言型クエリ言語であるCypherクエリを実行できます。

以下のcypher-shellコマンドを実行して、Neo4jグラフデータベースにログインします。ユーザー名を尋ねられたら、デフォルトユーザーのneo4jを入力し、次にパスワードを入力します。

cypher-shell -a 'neo4j://192.168.5.15:7687'

接続されると、メッセージ ‘Connected to Neo4j … as user neo4j ‘が表示され、プロンプトが‘neo4j@neo4j> ‘のようになります。

connecting via cypher-shell

次に、以下のCypherクエリ:helpを実行してヘルプメッセージを表示し、:exitでcypher-shellから退出します。ご覧のとおり、Cypherクエリは常にセミコロンで始まります。

:help  
:exit

run command

さらに、追加オプション-aを使用して特定のNeo4jサーバーに接続したり、-uを使用して希望のユーザーとしてログインしたりできます。

cypher-shell -a 'neo4j://192.168.5.15:7687' -u neo4j -p p4ssword

Neo4jグラフデータベースの基本操作

Neo4jグラフデータベースには、3つのコアエンティティがあります:

  1. ノード:Neo4jグラフデータベースのデータエンティティで、Cypherクエリ言語では括弧()を使用します。
  2. リレーションシップ:2つのノードが互いに接続されている場合、それをリレーションシップと呼びます。リレーションシップは矢印->で表され、ノード間の方向を示します。
  3. パス:接続されたノードとリレーションシップで構成されます。

まず、以下のクエリを実行して、ラベルMovieを持つ新しいノードを作成します。

CREATE (a:Movie {title:'The Matrix', released: 1999}) RETURN a;

create node

次に、以下のクエリを実行して、同じラベルPersonを持つ複数のノードを作成します。

CREATE (a:Person {name:'Keanu Reeves', born: 1964}) RETURN a;  
CREATE (a:Person {name:'Carrie-Anne Moss', born: 1967}) RETURN a;  
CREATE (a:Person {name:'Laurence Fishburne', born: 1961}) RETURN a;

create multiple nodes

次に、以下のクエリを実行して、ノードラベルPersonからノードラベルMovieへの新しいリレーションシップを作成します。この場合、リレーションシップはACTED_INという名前で、プロパティrolesを持ちます。

MATCH (a:Person), (b:Movie) WHERE (a.name = 'Keanu Reeves') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Neo']}]->(b);  
MATCH (a:Person), (b:Movie) WHERE (a.name = 'Carrie-Anne Moss') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Trinity']}]->(b);  
MATCH (a:Person), (b:Movie) WHERE (a.name = 'Laurence Fishburne') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Morpheus']}]->(b);

create relationships between nodes

最後に、以下のクエリを実行して、Neo4jグラフデータベース内の利用可能なノードとリレーションシップを確認します。

MATCH (s)-[r]->(e)  
RETURN s.name AS Name, e.title AS Title, r.roles AS As;

以下の出力は、各ノードが接続されていることを確認します。

check data

結論

結論として、Debian 12サーバーにNeo4jグラフデータベースをステップバイステップで成功裏にインストールしました。Neo4jグラフデータベースをインストールして構成し、Neo4jに接続するためのCypher-shellの基本的な使用法を学び、Cypherクエリ言語を使用した基本操作を学びました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。