Neo4j Browser 和 Cypher Shell 连接问题排查
本页面描述了用户在使用 Neo4j Browser 或 cypher-shell 连接 Neo4j 数据库时可能遇到的常见问题,以及如何解决这些问题。
连接超时
症状:连接尝试长时间停滞,然后以连接超时错误失败。
示例
$ cypher-shell -a 37.204.217.197 -u neo4j -p myPassword
connection timed out: /37.204.217.197:7687
排查步骤
-
确保地址正确。
-
确保如果服务器在 7687 以外的端口监听 Bolt 连接,您明确地将该端口传递给您的客户端(例如 cypher-shell)或其他您编写的程序。
-
确保防火墙规则不禁止 Bolt 端口上的流量。
此错误的常见原因
-
启动 Neo4j 云实例时未定义安全组或端口访问。Bolt 在正确的地址上可用,但防火墙规则阻止了访问。数据包被丢弃,导致连接超时。
-
Neo4j 的非标准配置,例如为了遵守本地网络策略,将 Bolt 运行在 7687 以外的端口上。
-
服务器尚未可用。在启动期间的一段时间内,特别是如果数据库正在修复文件或迁移旧存储,Bolt 端点可能不可用。当日志中包含类似以下消息时,您将知道它已可用:
2018-05-25 13:34:34.584+0000 INFO Bolt enabled on 127.0.0.1:7687.
ServiceUnavailable: WebSocket 连接失败
您可能会看到类似的消息:WebSocket connection failure. Due to security constraints in your web browser, the reason for the failure is not available to this Neo4j Driver
。
症状:您可以连接到 Neo4j Browser 并输入凭据,但连接失败并显示有关 WebSocket 连接失败的消息。
解释:这通常在使用不受信任的 SSL 证书与 Neo4j Browser 结合使用时,在 Firefox 和某些版本的 Internet Explorer 中出现。当用户点击接受异常并允许流量时,这些浏览器只授权 Neo4j Browser 运行的端口,而不是该主机上的所有端口。因此,浏览器的安全策略导致 WebSocket 连接到 Bolt 端口失败。
可用解决方案:1. 使用已签名的 SSL 证书 2. 按照您的浏览器指示,信任 Bolt 端口的服务器证书,然后刷新页面。3. 使用 Chrome 4. 在 Neo4j 配置中设置 dbms.connector.bolt.tls_level=OPTIONAL
。请注意,Bolt 连接可能未加密,但这是绕过 Web 浏览器不受信任证书问题的一种方法。
此页面有帮助吗?