将 Google CloudSQL Postgres 数据库连接到 Data Studio
Posted
技术标签:
【中文标题】将 Google CloudSQL Postgres 数据库连接到 Data Studio【英文标题】:Connect a Google CloudSQL Postgres database to Data Studio 【发布时间】:2019-03-16 13:12:54 【问题描述】:我正在尝试将托管在 google Cloud Sql 实例中的 Postgres 数据库连接到 Data Studio。 我已按照说明进行操作(在此处找到 https://support.google.com/datastudio/answer/7288010),但令我失望的是,我仍然无法从 Data Studio 连接到数据库。
我认为问题出在 SSL 连接上,好像我在 CloudSql 的选项中启用了“非安全连接”,我可以从 Data Studio 成功连接。
我已经创建了 ssl 连接工作所需的 3 个文件:
客户端证书 客户端密钥 服务器证书我已将它们上传到数据洞察连接页面的相关字段中:
当我按下身份验证时,我收到一条错误消息:
Please make sure that the private key is in PKCS8 format.
我尝试通过运行以下命令更改客户端密钥文件的格式:
openssl pkcs8 -topk8 -inform PEM -outform DER -in client-key.pem -out client-key.pkcs8 -nocrypt
但是我得到一个错误:
Can't reach the host. Please double check your connection parameters. Learn more about database connectors here.
最后必须注意的是,如果我尝试使用 ssl 和完全相同的密钥从本地计算机连接到数据库,但客户端密钥为 pem
格式,我可以连接成功。
我也应该将证书转换为其他格式吗? 我觉得通过 SSL 将 Postgres db 连接到 Data Studio 应该不难,我是否遗漏了一些明显的东西?
任何帮助将不胜感激。
谢谢。
【问题讨论】:
【参考方案1】:(首先获得证书)
如果您使用 GCP Cloud Postgres 连接,如下所示:
-
转到您的 GCP 控制台 -> SQL
点击进入您的数据库实例 -> 连接
向下滚动到“配置 SSL 客户端证书”
点击“创建客户端证书”,为其命名,然后下载输出
【讨论】:
【参考方案2】:最终证明,只需更改客户端密钥的格式即可。 上面不行的原因是改变格式的命令错误。
应该是:
openssl pkcs8 -topk8 -inform PEM -outform PEM -in client-key.pem -out client-key.key -nocrypt
(请注意问题中发布的 PEM 而不是 DER 参数)。
所以 Data Studio 连接有效!快乐的日子!
【讨论】:
虽然连接器配置会抱怨客户端密钥不是 PKCS8 格式,但它不会抱怨 PKCS8 是 DER 而不是 PEM,这真的很烦人。 Google DataStudio 社区页面上有很多人对此有疑问。谢谢托马斯的回答,我希望我在浪费一天多的时间之前已经阅读过。 您能否提供有关您如何开始获取 PEM 文件的任何信息? @blong 你可能已经猜到了,但是你从 SQL->Connections 页面下载了它 @ChrisMcCauley 干杯,感谢您提供的额外信息!以上是关于将 Google CloudSQL Postgres 数据库连接到 Data Studio的主要内容,如果未能解决你的问题,请参考以下文章
从在 Google Cloud Run 上运行的 Spring Boot 应用程序连接到没有 GCP 启动器的 Cloudsql