【问题标题】:How to connect Google Cloud SQL by SSL with database url?如何通过 SSL 将 Google Cloud SQL 与数据库 url 连接?
【发布时间】:2015-11-19 06:27:31
【问题描述】:

现在我想将 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?

【问题讨论】:

    标签: mysql ssl google-cloud-sql google-kubernetes-engine dynamic-ip


    【解决方案1】:

    在这方面,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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 2020-05-12
      • 2011-05-18
      • 2016-09-20
      • 1970-01-01
      相关资源
      最近更新 更多