2016-07-21 4 views
1

Python Neo4j Boltを使った私のテストは成功しました。テスト中、私はグラフデータベースを開きました( "First.graphdb"と呼ぶことができます)。それから別のpythonファイルを開き、neo4jを呼びたいと思った。今回は別のグラフデータベースを開きました(Second.graphdbと呼ぶことができます)。どのグラフデータベースを使用しているのか/更新していますか?ボルトネオ4jのpythonを使って、どのようにして別のグラフデータベースを扱うのですか?

答えて

0

同じホストに2つの暗号化された接続を使用する場合、あなたは、SSL証明書を使用してトラブルになりますあなたが次のことを行う場合は、第二の接続用のサーバー証明書が最初にするための既知の証明書と一致しないことを示すProtocolErrorを取得します

:。

from neo4j.v1 import GraphDatabase, basic_auth 

g1 = GraphDatabase.driver('bolt://localhost:7687') 

with g1.session() as s: 
    s.run('MATCH (a) RETURN a') 

g2 = GraphDatabase.driver('bolt://localhost:7787') 

with g2.session() as s: 
    s.run('MATCH (a) RETURN a') 

エラーメッセージ:

ProtocolError: Server certificate does not match known certificate for 'localhost'; 
check details in file '/Users/someuser/.neo4j/known_hosts' 

暗号化されていない接続(encrypted=Falsedriver()に追加することによって)を使用すると、機能します。

最初のデータベースを使用した後で、known_hostsファイルを削除するのが簡単な解決方法です。ただし、両方を同時に使用すると、オーバーヘッドが大きくなります。両方のデータベースが異なるホスト上で実行されている場合は、うまくいくはずです。それ以外に、証明書などを扱うことについてはあまり知らないのですが、どのポートのどのデータベースがどの証明書に属しているかをドライバに伝える方法があるかもしれません。

+0

ありがとうございました。これは非常に便利です。 調整を避けるための最も簡単な方法で(ダミーのために)推奨されるステップは何かをお知らせしてください(既にピップが流れている場合)。 例: 1. Neo4Jを開きます 2. Python IDEを開きます 3.インポートGraphDatabaseモジュール 4.など ありがとうございます。 –

+0

ホストごとに1つのDBのみを使用します。 IDEを開く方法を自分で理解しなければなりません。それは実際にスタックオーバーフローのポイントではありません... –

関連する問題