将django连接到Google云SQL第二代

将django连接到Google云SQL第二代,django,google-app-engine,Django,Google App Engine,我用的是一个。Django正在appspot上运行,在本地主机上测试时,与数据库的连接工作正常。我还可以与mysql客户端远程连接到实例,创建数据库,创建用户,以及通常的事情。我甚至可以 但是我无法让appspot上的django连接到SQL实例 尝试此操作时: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'INSTANCE': 'instance:connection:

我用的是一个。Django正在appspot上运行,在本地主机上测试时,与数据库的连接工作正常。我还可以与mysql客户端远程连接到实例,创建数据库,创建用户,以及通常的事情。我甚至可以

但是我无法让appspot上的django连接到SQL实例

尝试此操作时:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'INSTANCE': 'instance:connection:name',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
    }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '1.2.3.4', # my SQL instance IPv4 address
    }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '/cloudsql/my-instance-id',
    }
}
我得到一个
操作错误

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

尝试此操作时:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'INSTANCE': 'instance:connection:name',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
    }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '1.2.3.4', # my SQL instance IPv4 address
    }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '/cloudsql/my-instance-id',
    }
}
我得到一个
操作错误

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

尝试此操作时:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'INSTANCE': 'instance:connection:name',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
    }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '1.2.3.4', # my SQL instance IPv4 address
    }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'dbuser',
        'PASSWORD': 'pass',
        'HOST': '/cloudsql/my-instance-id',
    }
}
我得到一个
操作错误

(2013,“读取初始值时与MySQL服务器的连接中断” 通信数据包',系统错误:38“

当使用Google Cloud SQL第二代时,django使用的
数据库
设置是什么

编辑 有一个页面描述,但我想说,这是第一代

还有一个问题,但这也适用于第一代人

编辑2 我已经看到,默认情况下,云SQL第二代没有“授权应用程序”,也没有在Google云平台控制台上授权应用程序的选项。这可能是连接无法工作的原因。不幸的是,我还不知道如何为第二代实例授权应用程序

编辑3 试图:

gcloud sql实例修补程序--授权的gae应用程序
但不幸的是:

错误:(gcloud.sql.instances.patch)未能更新实例 因为它超过了可以附加的应用程序ID的最大数量 以实例为例


不知道如何为第二代执行此操作

常规应用程序引擎实例当前无法访问云SQL第二代实例。这一点在以下章节中简要提及:

注意:可以授予对云SQL第二代实例的访问权限 仅适用于托管虚拟机


这有望在第二代实例退出测试版之前改变。

在第一代和第二代配置中有不同的配置。我遇到了相同的问题,并通过更改实例的名称来修复它:

/cloudsql/[INSTANCE_CONNECTION_NAME]
在您必须授权应用程序引擎应用程序之前