intellij-idea - 从 Intellij 的 Database Navigator 插件连接到 GCloud Spanner Emulator 实例
问题描述
我gcr.io/cloud-spanner-emulator/emulator
在我的开发机器上的 Docker 容器中运行。我想从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
如此处所述,但使用了正确的项目、实例和数据库名称。至关重要的是,我已包含此问题中记录usePlainText=true
的参数。
当我测试连接时,我收到一条错误消息,上面写着
无法连接到“Spanner Localstack”。INVALID_ARGUMENT:在连接 URI 中发现无效属性:v$session.program, ApplicationName
有没有人使用 google-cloud-spanner-jdbc 驱动程序成功地将 Intellij 的 Database Navigator 连接到 cloud-spanner-emulator?
解决方案
您的设置和 JDBC URL 似乎都正常。该问题是由您无法控制的以下组合引起的:
- 数据库导航器自动将其添加到连接属性:https ://bitbucket.org/dancioca/dbn/src/d67a09f92b4b9f27e0d1feb91dada9bf0fe802eb/src/com/dci/intellij/dbn/connection/Connector.java?at=master#lines-92
- 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 驱动程序中解决这个问题。
推荐阅读
- php - sort array using array_unique from external XML (CDATA)
- db2 - IBM Bluemix Db2 on Cloud“错误 401:SRVE0295E:报告的错误:401”
- swift - 有没有更简单的方法以编程方式查看 UIImageView ?
- reactjs - 将函数传递给组件但接收未定义
- html - 使用 XPath 选择具有最高 z-index 值的项目
- leaflet - RPG地图问题
- angular - 从辅助子路由到父路由的角度 5 路由给出匹配错误
- c# - Unity:如何检查 Capsule 是否掉落?
- c++ - Protobug 消息中的消息标识符
- reactjs - 如果访问了 konva 元素,则显示反应 konva 标签