如何使用blazer ruby​​ gem连接到启用SSL的Cloud SQL实例

问题描述

我有一个托管在Google Cloud Flex应用程序引擎中的Rails应用程序。应用程序使用ssl证书连接到云sql实例(MysqL5.7)。 Rails应用程序成功连接到启用了ssl连接的云sql实例。 database.yml配置如下。

development:
  adapter: MysqL2
  database: databasename
  host: 10.2.224.3
  username: root
  password: password
  sslca: config/server-ca.pem
  sslkey: config/client-key.pem
  sslcert: config/client-cert.pem

但是当我将blazer gem安装到我的应用程序中时。 https://github.com/ankane/blazer#mysql-1

Blazer只能使用cloud sql的私有IP地址连接允许不安全连接的cloud sql实例。blazer.yml配置如下

data_sources:
  my_source:
    url: MysqL2://root:password@10.2.224.3:3306/databasename

当我在云sql实例中启用ssl时。 Blazer无法连接到启用了ssl的云sql实例,并收到“ SSL连接错误:无法获取证书”错误消息。 blazer.yml中的配置如下。

data_sources:
  my_source:
    url: MysqL2://root:password@10.2.224.3:3306/databasename?config/sslca=server-ca.pem&config/sslcert=client-cert.pem&sslkey=config/client-key.pem

如何配置Rails gem blazer的blazer.yml以使其连接到启用ssl的云sql MysqL实例? 或者我可能会问何时将Rails应用程序安装到flex应用程序引擎中。 如何在Flex应用程序引擎中找到我的ssl证书文件的路径。位于rails的config文件夹中。

任何建议将不胜感激。

解决方法

在您的数据库URI中,我看到以下内容:

...?config/sslca=server-ca.pem&...

我认为应该是:

sslca=config/server-ca.pem

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...