Neo4jに接続しようとしていますが、このエラーが発生し続けます。私は試した
from neo4j.v1 import GraphDatabase
driver = GraphDatabase.driver(uri="bolt://localhost:7687", auth=("neo4j", "12345"))
接続しようとすると、このエラーが発生します
SecurityError:「プロトコル(_ssl.c:841)に違反してEOFが発生しました」への安全な接続の確立に失敗しました
入力したらブラウザに接続できます http:// localhost:7474/browser /
ここに完全なエラーログがあります:
-------------------------------------------------- ------------------------- SSLEOFErrorトレースバック(最新の呼び出しは最後)〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct .py in _secure(s、Host、ssl_context、** config)853 try:-> 854 s = ssl_context.wrap_socket(s、server_hostname = Host if HAS_SNI and Host else None)原因:SSLErrorを原因として:
wrap_socket(self、sock、server_side、do_handshake_on_connect、suppress_ragged_eofs、server_hostname、session)のc:\ program files\python36\lib\ssl.py 406 server_hostname = server_hostname、-> 407 _context = self、_session = session)408
c:\ program files\python36\lib\ssl.py ininit(self、sock、keyfile、certfile、server_side、cert_reqs、ssl_version、ca_certs、do_handshake_on_connect、family、type、 proto、fileno、suppress_ragged_eofs、npn_protocols、ciphers、server_hostname、_context、_session)813 raise ValueError( "do_handshake_on_connect should not be specified for non-blocking sockets")-> 814 self.do_handshake()815
c:\ program files\python36\lib\ssl.py in do_handshake(self、block)
1067 self.settimeout(None)-> 1068 self._sslobj.do_handshake()1069最後に:c:\ program files\python36\lib\ssl.py in do_handshake(self)688 "" "Start the SSL/TLS handshake。" ""-> 689 self._sslobj.do_handshake()690 if self.context.check_hostname :
SSLEOFError:EOFプロトコル違反で発生しました(_ssl.c:841)
上記の例外は、次の例外の直接の原因でした。
1のSecurityErrorトレースバック(最新の呼び出しは最後)----> 2 driver = GraphDatabase.driver(uri = "bolt:// localhost:7687"、auth =( "neo4j"、 "12345"))
〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py in driver(cls、uri、** config)118:class:
.Driver
サブクラスのインスタンスを直接。 119 "" "-> 120 return Driver(uri、** config)121 122〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py innew(cls、uri、** config)159 for subclass for Driver。subclasses():160 if parsed_scheme in subclass.uri_schemes:-> 161 return subclass(uri、** config)162 raise ValueError( "URI scheme%r not supported"%parsed.scheme) 163
〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py innew(cls、uri、** config)233 234 pool = ConnectionPool(connector、instance。アドレス、** config)-> 235 pool.release(pool.acquire())236 instance._pool = pool 237 instance._max_retry_time = config.get( "max_retry_time"、default_config ["max_retry_time"])
〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in acquire(self、access_mode)713 714 defquire(self、access_mode = None):-> 715 return self.acquire_direct(self.address )716 717
〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py inquire_direct(self、address)606 if can_create_new_connection:607 try:-> 608 connection = self.connector(address、error_handler = self.connection_error_handler )ServiceUnavailableを除く609:610 self.remove(address)
〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py in connector(address、** kwargs)230231 def connector(address、** kwargs):-> 232 return connect(address、** dict (config、** kwargs))233234プール= ConnectionPool(connector、instance.address、** config)
〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in connect(address、** config)970 raise ServiceUnavailable( "Failed to resolve addresses for%s"%address)971 else:-> 972 last_errorを発生させる
〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in connect(address、** config)961 Host = address [0] 962 s = _connect(resolved_address、** config)-> 963 s、der_encoded_server_certificate = _secure(s、Host、security_plan.ssl_context、** config)964 connection = _handshake(s、address、der_encoded_server_certificate、** config)965エラーとしての例外を除く:
〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in _secure(s、Host、ssl_context、** config)857 error = SecurityError( "Failed to established secure connection to {!r}"。 format(cause.args [1]))858エラー。cause= cause-> 859エラー860を発生させるelse:861#サーバーが証明書を提供していることを確認する
SecurityError:「プロトコル(_ssl.c:841)に違反してEOFが発生しました」への安全な接続の確立に失敗しました
Object Graph Mapper Neomodel(neo4j v4への接続)でも同じ問題が発生しました。 2行目を追加すると解決しました:
config.DATABASE_URL = 'bolt://neo4j:password123@localhost:7687'
config.ENCRYPTED_CONNECTION = False
同じ問題がありましたが、サムからの回答では解決できませんでした。使用する
_from neo4j import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver( encrypted=False, uri, auth=('neo4j', 'asdf'))
_
エラー_SyntaxError: positional argument follows keyword argument
_が発生する
次のようにuri
directlyをコマンドに入力すると:driver = GraphDatabase.driver( encrypted=False, uri = "bolt://localhost:7687", auth=('neo4j', 'asdf'))
は別のエラー(SecurityError: Failed to establish secure connection to '[SSL: KRB5_S_TKT_NYV] unexpected eof while reading (_ssl.c:1076)'
)になります
neo4jコミュニティの投稿 をたどると、引数の位置がこれに切り替わります。
_from neo4j import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver( uri, auth=('neo4j', 'asdf')encrypted=False)
_
それは魅力のように機能します。