2

Now I want to deploy a rails app to Google Container Engine. And use Google Cloud SQL as database.

When I tried to connect Google Cloud SQL from Google Container Engine, I got this error:

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

Here is a document to solve that, but there is no information about Google Container Engine:

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

The Google Cloud SQL access SSL connect for dynamically assigned IP addresses:

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

So I need to create a client certificate for mysql instance:

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

Then connect it this way:

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

But I want to connect Google Cloud SQL by mysql database url from my program on Google Container Engine:

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

How to attach --ssl-ca, --ssl-cert, --ssl-key with this method?

scho
  • 3,275
  • 6
  • 19
  • 30

1 Answers1

0

Google Cloud SQL is no different from any other MySQL server in this regard. You append the SSL information as parameters to the query section of the URL. In your example it would be:

mysql2://myapp:password@1.2.3.4/myapp?checkout_timeout=20000&sslca=server-ca.pem&sslcert=client-cert.pem&sslkey=client-key.pem
Jason
  • 105
  • 1
  • 9