将django连接到Google Cloud SQL Second Generation

dan*_*ast 9 django google-app-engine

我正在使用Cloud SQL第二代.Django正在appspot上运行,并且在localhost上进行测试时,与数据库的连接正常.我还可以远程连接mysql客户端到实例,创建数据库,创建用户,通常的东西.我甚至可以远程上传灯具.

但我无法在连接到SQL实例的appspot上获取django.

在尝试这个时:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'INSTANCE': 'instance:connection:name',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到一个OperationalError:

(2001,"无法创建UNIX套接字(-1)")

在尝试这个时:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '1.2.3.4', # my SQL instance IPv4 address
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到一个OperationalError:

(2004,"无法创建TCP/IP套接字(-1)")

在尝试这个时:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '/cloudsql/my-instance-id',
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到一个OperationalError:

(2013年,"在'读取初始通信数据包'时失去与MySQL服务器的连接',系统错误:38")

DATABASES使用Google Cloud SQL Second Generation时,django 有哪些设置?

编辑

有一个描述所需设置的页面,但我想说的是第一代.

此外,还有一个相关的问题,但这也适用于第一代.

EDIT2

我已经看到默认情况下没有Cloud SQL Second Generation的"授权应用程序",并且没有选项可以在Google Cloud Platform控制台上授权应用程序.这可能是连接无法正常工作的原因.不幸的是,我还不知道如何授权第二代实例的应用程序.

EDIT3

试图授权应用程序:

gcloud sql instances patch <sql-instance> --authorized-gae-apps <gae-app>
Run Code Online (Sandbox Code Playgroud)

但不幸的是:

错误:(gcloud.sql.instances.patch)无法更新实例,因为它超出了可以附加到实例的最大应用ID数.

不知道第二代如何做到这一点

Ada*_*dam 0

常规 App Engine 实例目前无法访问 Cloud SQL 第二代实例。文档中简要提到了这一点:

注意:只能向托管虚拟机授予对 Cloud SQL 第二代实例的访问权限。

在第二代实例结束测试版之前,这种情况应该会发生改变。