SQLAlchemy AppEngine Standard - 失去与 MySQL 服务器的连接



我正在尝试从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 :

app.yaml :

 - name: MySQLdb
   version: "latest"

要求.txt :

SQLAlchemy==1.2.4

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

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

所以最后,这个错误的含义也可能是Unix套接字是错误的。

与Google CloudSQL服务器的连接丢失的原因有很多,但非常正确的是,您必须首先确保您的设置是合适的。我不认为这个问题与版本兼容性有关。

根据文档,为了使您的应用程序能够在部署应用程序时连接到您的 Cloud SQL 实例,您需要将 Cloud SQL 中的用户、密码、数据库和实例连接名称变量添加到 app.yaml 文件中的相关环境变量(您显示的 app.yaml 似乎不包含这些环境变量(。

我建议您查看链接中的详细信息,了解有关如何设置 CloudSQL 实例和连接到实例的详细信息。

相关内容

  • 没有找到相关文章

最新更新