📜  使用 Cloud SQL Auth 代理连接到多个实例 (1)

📅  最后修改于: 2023-12-03 15:22:10.023000             🧑  作者: Mango

使用 Cloud SQL Auth 代理连接到多个实例

在使用 Google Cloud SQL 的过程中,你可能需要连接到多个实例。这时候,使用 Cloud SQL Auth 代理可以帮助你快速安全地连接到这些实例。以下是如何使用 Cloud SQL Auth 代理连接到多个实例:

步骤
1. 预备工作

在开始之前你需要做以下准备工作:

  • 安装 Cloud SQL Auth 代理
  • 设置代理的访问控制
  • 创建多个 Cloud SQL 实例
2. 配置代理

配置文件

在配置文件中,你可以设置多个实例的连接信息。以下是示例配置文件的格式:

instances:
  - name: my-first-instance
    port: 3306
  - name: my-second-instance
    port: 5432

你需要将实例的名称和端口号更改为你自己实例的信息。你也可以通过设置其他选项,如 SSL、Unix 套接字路径等,定制代理的行为。

启动代理

启动代理的命令如下:

cloud_sql_proxy -instances=my-first-instance=my-first-instance-connection-name,my-second-instance=my-second-instance-connection-name -credential_file=credentials.json

你需要将 my-first-instance-connection-namemy-second-instance-connection-name 更改为你自己实例的连接名称,并将 credentials.json 更改为你自己的凭证文件。

3. 连接实例

连接实例的方法与单个实例的方法相同。以下是 Python 连接示例:

import os
import MySQLdb

# 从环境变量获取代理的套接字路径
unix_socket = os.getenv('DB_HOST')

# 使用代理作为主机和端口连接数据库
db = MySQLdb.connect(
    host='localhost',
    port=3306,
    user='myuser',
    passwd='mypassword',
    db='mydatabase',
    unix_socket=unix_socket
)

# 查询数据
cursor = db.cursor()
cursor.execute("SELECT * FROM mytable")

# 输出结果
for row in cursor.fetchall():
    print(row)

# 关闭连接
db.close()
4. 完成

现在你已经知道如何使用 Cloud SQL Auth 代理连接到多个实例了!通过这种方式,你可以快速安全地连接到你的多个 Cloud SQL 实例。