问题描述
我正在尝试使用云 sql 代理连接到 2 个不同的云 sql 实例...
I'm attempting to use the cloud sql proxy to connect to 2 different cloud sql instances...
在文档中,我找到了关于 Use -instances 参数的一行.对于多个实例,请使用逗号分隔的列表.
但不确定如何使其看起来.https://cloud.google.com/sql/docs/sql-proxy.我正在使用 Google 容器引擎,并且使用单个 CloudSQL 实例效果很好:
In the docs I found a line about Use -instances parameter. For multiple instances, use a comma-separated list.
but not sure how to make that look. https://cloud.google.com/sql/docs/sql-proxy. I'm using Google Container engine, and with a single CloudSQL instance it works great:
- name: cloudsql-proxy
image: b.gcr.io/cloudsql-docker/gce-proxy:1.05
command: ["/cloud_sql_proxy", "--dir=/cloudsql",
"-instances=starchup-147119:us-central1:first-db=tcp:3306",
"-credential_file=/secrets/cloudsql/credentials.json"]
volumeMounts:
- name: cloudsql-oauth-credentials
mountPath: /secrets/cloudsql
readOnly: true
- name: ssl-certs
mountPath: /etc/ssl/certs
但是对于多个我已经尝试过 -instances
部分,例如:
But for multiple I've tried the -instances
section as such:
-instances=starchup-147119:us-central1:first-db,starchup-147119:us-central1:second-db=tcp:3306
and
-instances=starchup-147119:us-central1:first-db=tcp:3306,starchup-147119:us-central1:second-db=tcp:3306
但它们都给出了各种错误;ECONNREFUSED 127.0.0.1:3306
、ER_DBACCESS_DENIED_ERROR
和 ER_ACCESS_DENIED_ERROR
but they all give various errors; ECONNREFUSED 127.0.0.1:3306
, ER_DBACCESS_DENIED_ERROR
, and ER_ACCESS_DENIED_ERROR
非常感谢任何帮助!
推荐答案
不能在同一个 TCP 端口上托管两个数据库.相反,在逗号分隔的列表中为每个数据库指定端口:
You cannot have two databases hosted on the same TCP port. Instead, specify ports for each database in the comma-separated list:
-instances=project:region:db=tcp:3306,project:region:db-2=tcp:3307
我在这里使用了 3306 和 3307,但是您可以使用任何您想要的端口!确保容器引擎配置的其余部分允许这些端口上的节点之间进行通信(也许默认情况下确实如此,我不使用 GKE).
I used 3306 and 3307 here, but you can use any ports you want! Make sure that the rest of your Container Engine config allows for communication between nodes on these ports (maybe that's true by default, I don't use GKE).
大多数 mysql 驱动程序默认连接到端口 3306,但可以指定另一个端口.您必须安排您的代码连接到您为第二个数据库选择的不同端口.
Most mysql drivers connect to port 3306 by default but have a way to specify another port. You'll have to arrange for your code to connect to the different port you choose for the second database.
这篇关于使用 Cloud sql 代理连接到多个 CloudSQL 实例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!