mysql - SQLAlchemy AppEngine 标准 - 与 MySQL 服务器的连接丢失

标签 mysql python-2.7 google-app-engine sqlalchemy google-cloud-sql

我正在尝试从 AppEngine 标准 (Python 2.7) 连接到 Python 中的第二代 Google Cloud SQL。 直到现在,我都是直接使用 MySQLDB 驱动程序,没问题。

我已经尝试切换到 SQLAlchemy,但现在我在部署代码时总是出现此错误(它似乎在本地工作正常)导致错误 500(这不仅仅是丢失的一些连接,它经常失败):

OperationalError: (_mysql_exceptions.OperationalError) (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38") (Background on this error at: http://sqlalche.me/e/e3q8)

我不明白,因为设置和以前没有什么不同,所以这一定与我使用SQLAlchemy的方式有关。

我用的是这样的:

create_engine("mysql+mysqldb://appuser:password@x.x.x.x/db_name?unix_socket=/cloudsql/gcpProject:europe-west1:instanceName")

我尝试了不同的值(有,没有 ip,...)。但它仍然是一样的。是版本兼容性问题吗?

我用 app.yaml 和 SQLAlchemy 1.2.4 中的 MySQL-python:

应用程序.yaml:

 - name: MySQLdb
   version: "latest"

要求.txt :

SQLAlchemy==1.2.4

最佳答案

这是 url 中的问题。我在连接字符串末尾添加了代码“/dbname”的特定部分,结果如下:

mysql+mysqldb://appuser:password@/db_name?unix_socket=/cloudsql/gcpProject:europe-west1:instanceName/dbname

所以最后,这个错误的意思也可能是unix socket不对

关于mysql - SQLAlchemy AppEngine 标准 - 与 MySQL 服务器的连接丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49277776/

相关文章:

mysql - MySql 中的多个 SELECT 语句,返回 date_sub()

python - 在类实例化期间干净地处理问题

python - 缩进错误 : unexpected indent - Python 2. 7

python - 与 Python 2.7 中的 ModuleNotFoundError 类似的异常?

java - 如何在 Java Google App Engine 中检查传入电子邮件的 DKIM 签名

Django——我已经准备好了一个小应用程序,我应该使用私有(private) VPS 还是 Google App Engine?

mysql - SQL 聚合未执行

php - 忘记密码电子邮件重置 php 工作,除了原始密码和更改密码都不允许登录

google-app-engine - 谷歌应用引擎认证

mysql - 指定在 MySQL 中查找行的概率