尝试打开与 Google Cloud Spanner 的 JDBC 连接时出错
Error when trying to open a JDBC connection to Google Cloud Spanner
我正在尝试打开与 Google Cloud Spanner 数据库的 JDBC 连接,但收到以下错误消息:
java.lang.IllegalArgumentException: A project ID is required for this
service but could not be determined from the builder or the
environment. Please set a project ID using the builder.
我的JDBCURL如下:
jdbc:cloudspanner://localhost;Project=project-id;Instance=instance-id;Database=database-name;PvtKeyPath=path-to-key-file
如果我从 URL 中删除 Project
属性,我会得到以下异常:
java.sql.SQLNonTransientConnectionException: [Simba]JDBC
Connection Refused: [Simba]JDBC Required Connection Key(s):
Project; [Simba]JDBC Optional Connection Key(s): Language,
Mode
所以看起来驱动程序确实选择了我的项目 ID,但不知何故不接受它。我已经检查并仔细检查了我的项目 ID 确实等于我在 Google 上创建的项目 ID,我还尝试将值更改为项目名称而不是项目 ID,但无济于事。
有人有URL有效的例子吗?
编辑:它似乎与对私钥文件的引用有关。如果我将环境变量 GOOGLE_APPLICATION_CREDENTIALS 指向我的私钥文件,就可以成功建立连接。如果删除此环境变量,则会出现上述异常。
您使用的是哪个版本的驱动程序?在最新版本中,如果您在 URL 中指定凭证文件的路径,则无需设置 GOOGLE_APPLICATION_CREDENTIALS.
由于 Google 提供的 JDBC 驱动程序受到严重限制(不支持 DML 和 DDL 状态),我编写了自己的 JDBC 驱动程序。该驱动程序设计用于 JPA/Hibernate-enabled 应用程序。可以在这里找到驱动程序:https://github.com/olavloite/spanner-jdbc
此驱动程序支持与 Google 提供的驱动程序相同的 URL,包括 PvtKeyPath 属性。
我正在尝试打开与 Google Cloud Spanner 数据库的 JDBC 连接,但收到以下错误消息:
java.lang.IllegalArgumentException: A project ID is required for this service but could not be determined from the builder or the environment. Please set a project ID using the builder.
我的JDBCURL如下:
jdbc:cloudspanner://localhost;Project=project-id;Instance=instance-id;Database=database-name;PvtKeyPath=path-to-key-file
如果我从 URL 中删除 Project
属性,我会得到以下异常:
java.sql.SQLNonTransientConnectionException: [Simba]JDBC Connection Refused: [Simba]JDBC Required Connection Key(s): Project; [Simba]JDBC Optional Connection Key(s): Language, Mode
所以看起来驱动程序确实选择了我的项目 ID,但不知何故不接受它。我已经检查并仔细检查了我的项目 ID 确实等于我在 Google 上创建的项目 ID,我还尝试将值更改为项目名称而不是项目 ID,但无济于事。
有人有URL有效的例子吗?
编辑:它似乎与对私钥文件的引用有关。如果我将环境变量 GOOGLE_APPLICATION_CREDENTIALS 指向我的私钥文件,就可以成功建立连接。如果删除此环境变量,则会出现上述异常。
您使用的是哪个版本的驱动程序?在最新版本中,如果您在 URL 中指定凭证文件的路径,则无需设置 GOOGLE_APPLICATION_CREDENTIALS.
由于 Google 提供的 JDBC 驱动程序受到严重限制(不支持 DML 和 DDL 状态),我编写了自己的 JDBC 驱动程序。该驱动程序设计用于 JPA/Hibernate-enabled 应用程序。可以在这里找到驱动程序:https://github.com/olavloite/spanner-jdbc
此驱动程序支持与 Google 提供的驱动程序相同的 URL,包括 PvtKeyPath 属性。