Neo4j 浏览器和 Cypher Shell 连接问题排查
此页面描述了用户在将 Neo4j 浏览器或 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 的非标准配置,例如为了符合本地网络策略而在除 7687 以外的端口上运行 bolt。
-
服务器尚不可用。在启动期间的一段时间内,特别是如果数据库正在修复文件或迁移旧存储,bolt 端点可能不可用。当日志包含如下所示的消息时,您将知道它可用:
2018-05-25 13:34:34.584+0000 INFO Bolt enabled on 127.0.0.1:7687.
ServiceUnavailable: WebSocket 连接失败
您可能会看到类似的消息:WebSocket 连接失败。由于您的网络浏览器中的安全限制,此 Neo4j 驱动程序无法获得失败原因
。
症状:您可以连接到 Neo4j 浏览器并输入凭据,但无法连接,并显示有关 WebSocket 连接失败的消息。
说明:当 Neo4j 浏览器与不受信任的 SSL 证书一起使用时,Firefox 和某些版本的 Internet Explorer 经常会出现这种情况。当用户单击以接受异常并允许流量时,这些浏览器仅为 Neo4j 浏览器正在运行的端口授权该操作,而不是授权该主机上的所有端口。因此,浏览器的安全策略导致 WebSocket 连接到 bolt 端口失败。
可用解决方案:1. 使用签名的 SSL 证书 2. 按照浏览器说明信任服务器针对 bolt 端口的证书,然后刷新页面。 3. 使用 Chrome 4. 在您的 neo4j 配置中设置 dbms.connector.bolt.tls_level=OPTIONAL
。请注意,bolt 连接可能未加密,但这是绕过网络浏览器与不受信任证书相关问题的解决方法。
此页面是否有帮助?