【问题标题】:Connecting to a GCloud Spanner Emulator instance from Intellij's Database Navigator Plugin从 Intellij 的 Database Navigator 插件连接到 GCloud Spanner Emulator 实例
【发布时间】:2020-11-23 20:03:22
【问题描述】:

我正在开发机器上的 Docker 容器中运行 gcr.io/cloud-spanner-emulator/emulator。我想从Intellij Database Navigator 连接到数据库,这样我就可以看到哪些数据写入了我的表。

在 Database Navigator 中,我创建了一个新的通用连接并将其配置为使用 google-cloud-spanner-jdbc 驱动程序(版本 1.17.3,从 maven 获得),使用连接字符串

jdbc:cloudspanner://localhost:9010/projects/my-project/instances/my-instance/databases/main;usePlainText=true

作为documented here,但包含正确的项目、实例和数据库名称。至关重要的是,我已包含usePlainText=true 参数as documented in this question

当我测试连接时,我收到一条错误消息,上面写着

无法连接到“Spanner Localstack”。 INVALID_ARGUMENT:在连接 URI 中发现无效属性:v$session.program, ApplicationName

是否有人使用 google-cloud-spanner-jdbc 驱动程序成功地将 Intellij 的 Database Navigator 连接到 cloud-spanner-emulator?

【问题讨论】:

    标签: intellij-idea jdbc google-cloud-spanner google-cloud-spanner-emulator


    【解决方案1】:

    您的设置和 JDBC URL 似乎都正常。问题是由您无法控制的以下组合引起的:

    1. Database Navigator 自动将此添加到连接属性中:https://bitbucket.org/dancioca/dbn/src/d67a09f92b4b9f27e0d1feb91dada9bf0fe802eb/src/com/dci/intellij/dbn/connection/Connector.java?at=master#lines-92
    2. Cloud Spanner JDBC 驱动程序检查它是否只接收已知属性:https://github.com/googleapis/java-spanner/blob/907ae1ff2f5c0b60510c435f5ba270bd92827104/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java#L602

    由于 Cloud Spanner JDBC 驱动程序不知道 Database Navigator 添加的所有属性,它会拒绝连接。我会看看我们是否可以在 JDBC 驱动程序中解决这个问题。

    【讨论】:

    • 谢谢!我会看看我是否也可以向 Database Navigator 维护者提出问题。
    猜你喜欢
    • 2021-11-23
    • 2021-03-19
    • 2016-10-30
    • 2018-11-09
    • 2020-10-02
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多