Google cloud sql:在"读取初始通信数据包"时失去与MySQL服务器的连接

 zhanghuabing 发布于 2022-12-27 13:14

我已经设置了一个默认的django/django-wiki项目.本地测试工作正常.从本地服务器(带google.appengine.ext.django.backends.rdbms)连接到云sql 不起作用,我相信由于一些身份验证问题.更重要的是,我无法从生产服务器连接.

我确保不在MySQLdb我的虚拟环境目录中部署我的本地会话.

我有以下内容app.yaml:

- name: MySQLdb
  version: "latest"

我的DATABASE条目如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbname',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '/cloudsql/appname:sqlinstance',
        'PORT': '',
    }
}

它似乎工作,或至少不抱怨丢失包或mysql导入问题.我的问题如下(从生产日志中获取,但也可以通过django调试输出看到):

File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/MySQLdb-1.2.4b4/MySQLdb/connections.py", line 190, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")

可能是什么导致了这个?这是否意味着与某事有联系但没有回复?从外部源连接时,其他帖子似乎提到这是一个问题,但此连接来自app引擎AFAIK.

1 个回答
  • 嗯,这比预期的要简单得多.我假设使用我的谷歌帐户创建的云sql默认只授予访问我的GAE应用程序的权限.必须明确设置,从Developer Console- > Storage- > Cloud SQL- > instance-name- > Edit- > AUTHORIZED APP ENGINE APPLICATIONS.或者,在创建SQL实例时,请打开高级选项.

    我刚刚在框中添加了我的应用程序的名称,点击保存,一切正常.

    2022-12-27 13:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有