gle*_*age 8 mysql google-cloud-sql google-cloud-platform cloud-sql-proxy
我正在尝试使用cloud sql代理连接到2个不同的云sql实例...
在文档中,我找到了一条关于Use -instances parameter. For multiple instances, use a comma-separated list.但不确定如何制作这个外观的线.https://cloud.google.com/sql/docs/sql-proxy.我正在使用Google容器引擎,并且使用单个CloudSQL实例它可以很好地运行:
- 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
Run Code Online (Sandbox Code Playgroud)
但对于多个我已尝试过这样的-instances部分:
-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
Run Code Online (Sandbox Code Playgroud)
但他们都犯了各种错误; ECONNREFUSED 127.0.0.1:3306,ER_DBACCESS_DENIED_ERROR和ER_ACCESS_DENIED_ERROR
任何帮助深表感谢!
Car*_*n42 16
您不能在同一TCP端口上托管两个数据库.而是在逗号分隔列表中为每个数据库指定端口:
-instances=project:region:db=tcp:3306,project:region:db-2=tcp:3307
Run Code Online (Sandbox Code Playgroud)
我在这里使用3306和3307,但你可以使用你想要的任何端口!确保Container Engine配置的其余部分允许这些端口上的节点之间的通信(默认情况下可能是这样,我不使用GKE).
大多数mysql驱动程序默认连接到端口3306,但有一种方法可以指定另一个端口.您必须安排代码连接到您为第二个数据库选择的不同端口.
您可以在同一端口上创建两个实例,但必须定义不同的 IP,如下所示:
-instances=project:region:db=tcp:127.0.0.1:3306,project:region:db-2=tcp:127.0.0.2:3306
Run Code Online (Sandbox Code Playgroud)
您可以在Github cloudsql-proxy 存储库上查看示例。
| 归档时间: |
|
| 查看次数: |
2344 次 |
| 最近记录: |