【问题标题】:Cannot Connect to Google Cloud API with Python无法使用 Python 连接到 Google Cloud API
【发布时间】:2019-12-07 10:39:59
【问题描述】:

我正在尝试连接到我创建的 Google Cloud SQL 实例,但每次尝试连接都会导致错误消息提示我无法连接或无权访问。我使用了云代理连接、私有 IP 连接和 Cloud shell 连接。

我使用 cloudsql git 存储库作为参考 (https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard/cloudsql)

我只针对我的特定项目和实例更改了这些文件。

收集有关连接的信息:

CLOUDSQL_CONNECTION_NAME = os.environ.get('CLOUDSQL_CONNECTION_NAME')
CLOUDSQL_USER = os.environ.get('CLOUDSQL_USER')
CLOUDSQL_PASSWORD = os.environ.get('CLOUDSQL_PASSWORD')

设置连接(包含在 git 中):

if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
    # Connect using the unix socket located at
    # /cloudsql/cloudsql-connection-name.
    cloudsql_unix_socket = os.path.join(
        '/cloudsql', CLOUDSQL_CONNECTION_NAME)

    db = MySQLdb.connect(
        unix_socket=cloudsql_unix_socket,
        user=CLOUDSQL_USER,
        passwd=CLOUDSQL_PASSWORD)
else:
   db = MySQLdb.connect(
            host='127.0.0.1', user=CLOUDSQL_USER, passwd=CLOUDSQL_PASSWORD)

我收到的错误:

pymysql.err.OperationalError: (1045, "Access denied for user ''@'localhost' (using password: YES)")

(pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 2] No such file or directory)")

我几乎尝试了所有方法。这只是我采取的众多路线中的一个例子。任何建议或指导将不胜感激。

【问题讨论】:

  • 此错误意味着您连接到数据库的“用户名”不正确,或者您没有向该用户“授予权限”。这些是 MySQL 问题,而不是 GCP 问题。您可以在 Cloud SQL 控制台或直接在 MySQL 数据库中修改用户。 chartio.com/resources/tutorials/… 首先使用mysql 命令行工具进行测试。然后转到 Python 代码。
  • 您链接的参考用于将 App Engine 标准服务连接到 Cloud SQL 实例。那是你的情况吗?如果没有,您从哪里连接?

标签: python google-cloud-platform google-cloud-sql


【解决方案1】:

您引用的示例要求您在 App Engine Standard 上运行,或者已使用代理在 /cloudsql/<INSTANCE_CONNECTION_NAME> 创建 Unix 套接字。

在您的示例中,我会确保您使用的检查 (SERVER_SOFTWARE env var) 工作正常。

当您在本地运行时,您的应用将尝试在 127.0.0.1 上连接。为此,代理需要运行并绑定到 tcp 端口。检查来自代理的日志以查看是否引发了任何其他错误。

当您在 App Engine 中运行时,请确保您有 followed the setup on this page 以启用 Cloud SQL Admin API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 2021-08-10
    • 2014-11-25
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    相关资源
    最近更新 更多