Skip to main content
 首页 » 编程设计

python之执行 django syncdb 时谷歌云 sql 错误

2025年04月02日51qq号

我在 google appengine 和 google cloud sql 上托管了一个 django 应用程序作为数据库。我点击此链接 https://cloud.google.com/appengine/docs/python/cloud-sql/django将数据库模式同步并迁移到 cloudsql。这对我来说很好。但是当我今天尝试 syncdb 时,出现如下所示的错误。

OperationalError: could not connect: https://www.googleapis.com/sql/v1/jdbc/openConnection?alt=proto returned "Not Found">

我的数据库设置是

    if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'): 
        # Running on production App Engine, so use a Google Cloud SQL database. 
        DATABASES = { 
            'default': { 
            'ENGINE': 'django.db.backends.mysql', 
            'HOST': '/cloudsql/<projectname>:<instancename>', 
            'NAME': '<db-name>', 
            'USER': 'root', 
            } 
        } 
    elif os.getenv('SETTINGS_MODE') == 'prod': 
        # Running in development, but want to access the Google Cloud SQL instance in production. 
        DATABASES = { 
            'default': { 
            'ENGINE': 'google.appengine.ext.django.backends.rdbms', 
            'INSTANCE': '<projectname>:<instancename>', 
            'NAME': 'db-name', 
            'USER': 'root', 
           } 
        } 

请您参考如下方法:

我在 google api 控制台更改了我的数据库设置并授权了我的本地 ip 地址。现在一切正常。
我的新数据库设置是

    if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'): 
    # Running on production App Engine, so use a Google Cloud SQL database. 
        DATABASES = { 
        'default': { 
        'ENGINE': 'django.db.backends.mysql', 
        'HOST': '/cloudsql/<projectname>:<instancename>', 
        'NAME': '<db-name>', 
        'USER': 'root', 
        } 
    } 
    elif os.getenv('SETTINGS_MODE') == 'prod': 
    # Running in development, but want to access the Google Cloud SQL instance in production. 
        DATABASES = { 
        'default': { 
        'ENGINE': 'django.db.backends.mysql', 
        'HOST': '<instance-ip-address>', 
        'NAME': 'db-name', 
        'USER': 'root', 
        'PASSWORD': '<password>' 
       } 
    }