无法连接到MySQL服务器在Django 2.x.x Python中的AppEngine

问题描述 投票:0回答:1

我想使用云SQL / MySQL实例为我的AppEngine帐户。该应用程序是一个Python的Django的2.1.5的AppEngine应用。我已经在谷歌云创建MYSQL的一个实例。

我已经加入从SQL实例的详细信息复制我的app.yaml文件如下:

beta_settings:
  cloud_sql_instances: <INSTANCE_CONNECTION_NAME>=tcp:<TCP_PORT>
  • 我已经给我的AppEngine项目XXX-应用程序的所有者XXX-[email protected]Cloud SQL Client权利的权利。我创建特定于应用程序XYZ它可以连接到所有主机(*可选)一个数据库用户账号
  • 在settings.py我的连接明细如下:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'my-db',
            'USER': 'appengine',
            'PASSWORD': 'xxx',
            'HOST': '111.111.11.11', # used actual ip
            'PORT': '3306'
        }
    }
DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '/cloudsql/<your-project-id>:<your-cloud-sql-instance>',
            'NAME': '<your-database-name>',
            'USER': 'root',
        }
    }
  • 我无法从本地连接为好。但是,如果我做我的本地IP的Add Network,然后尝试连接本地所连接。该应用程序将运行使用CIDR标记本地IP地址的网络后,当地的罚款。

我的问题:

  • 我无法连接到云SQL不添加AppEngine上分配的IP地址。它给了我一个错误:
OperationalError: (2003, "Can't connect to MySQL server on '0.0.0.0' ([Errno 111] Connection refused)")
  • 我在哪里可以找到AppEngine上的分配的IP地址。我不介意,即使是暂时的。我明白,如果我需要静态IP地址,我将不得不创建一个计算虚拟机实例。
python mysql django google-app-engine google-cloud-sql
1个回答
2
投票

App Engine不具有任何担保关于特定实例的IP地址,并且可以随时更改。既然是无服务器平台,它抽象掉的基础设施,让您专注于您的应用程序。

有使用App引擎的Flex时有两种选择:Unix域套接字和TCP端口。哪一个App Engine提供了您取决于您​​如何在app.yaml中指定它:

  • cloud_sql_instances: <INSTANCE_CONNECTION_NAME>提供在/cloudsql/<INSTANCE_CONNECTION_NAME> Unix套接字
  • cloud_sql_instances: <INSTANCE_CONNECTION_NAME>=tcp:<TCP_PORT>提供了本地TCP端口(127.0.0.1:<TCP_PORT>)。

您可以找到有关这个Connecting from App Engine页的详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.