2

现在我想将 Rails 应用程序部署到 Google Container Engine。并使用 Google Cloud SQL 作为数据库。

当我尝试从 Google Container Engine 连接 Google Cloud SQL 时,出现以下错误:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

这是解决该问题的文档,但没有关于 Google Container Engine 的信息:

https://cloud.google.com/sql/docs/diagnose-issues#connection

Google Cloud SQL 访问 SSL 连接用于动态分配的 IP 地址:

https://cloud.google.com/sql/docs/access-control#dynamicIP

所以我需要为mysql实例创建一个客户端证书:

https://cloud.google.com/sql/docs/configure-ssl-instance

然后以这种方式连接它:

shell> mysql --ssl-ca=server-ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem \
         --host=instance-IP --user=user-name --password

https://cloud.google.com/sql/docs/mysql-client#connect

但我想通过我在 Google Container Engine 上的程序中的 mysql 数据库 url 连接 Google Cloud SQL:

mysql2://myapp:password@1.2.3.4/myapp?checkout_timeout=20000

如何用这种方法附加--ssl-ca, --ssl-cert, ?--ssl-key

4

1 回答 1

0

在这方面,Google Cloud SQL 与任何其他 MySQL 服务器没有什么不同。您将 SSL 信息作为参数附加到 URL 的查询部分。在您的示例中,它将是:

mysql2://myapp:password@1.2.3.4/myapp?checkout_timeout=20000&sslca=server-ca.pem&sslcert=client-cert.pem&sslkey=client-key.pem
于 2016-10-01T04:20:52.587 回答