Connecting to multiple CloudSQL instances using Cloud sql proxy?(使用 Cloud sql 代理连接到多个 CloudSQL 实例?)
问题描述
我正在尝试使用云 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 实例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 Cloud sql 代理连接到多个 CloudSQL 实例?
基础教程推荐
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01