繁体   English   中英

如何使用 Python 和私有 IP 从 GKE 连接到 Cloud SQL

[英]How to connect from GKE to Cloud SQL using Python and Private IP

我想使用私有 IP 使用 python 从我的 GKE pod 连接到我的 MySQL 数据库

我已经完成了所有的配置,连接正在测试 pod 中通过 bash 使用

mysql -u root -p --host X.X.X.X --port 3306

但它在我的 Python 应用程序中不起作用......也许我遗漏了一些东西

这是我当前的代码

# initialize Connector object
connector = Connector(ip_type=IPTypes.PRIVATE)

# function to return the database connection object
def getconn():
    conn = connector.connect(
        INSTANCE_CONNECTION_NAME,
        "pymysql",
        user=DB_USER,
        password=DB_PASS,
        db=DB_NAME
    )
    return conn

# create connection pool with 'creator' argument to our connection object function
pool = sqlalchemy.create_engine(
    "mysql+pymysql://",
    creator=getconn,
)

我仍然收到这些错误

aiohttp.client_exceptions.ClientResponseError: 403, message="Forbidden: Authenticated IAM principal does not seeem authorized to make API request. Verify 'Cloud SQL Admin API' is enabled within your GCP project and 'Cloud SQL Client' role has been granted to IAM principal.", url=URL('https://sqladmin.googleapis.com/sql/v1beta4/projects/manifest-altar-223913/instances/rapminerz-apps/connectSettings')

检查以下解决方法:

  1. 验证工作负载身份

  2. 如果不正常,请按照工作负载身份故障排除来查看问题所在。

如果设置正常,请按照错误消息“验证‘Cloud SQL Admin API’已在您的 GCP 项目中启用并且‘Cloud SQL Client’角色已授予 IAM 主体”进行操作。

  1. 您可以在云控制台中搜索“Cloud SQL Admin API”,确保启用它。

  2. 对于 Google 服务帐户,请为其授予“Cloud SQL Client”角色。

请通过云 go SQL Python 连接器了解更多详情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM