SQLAlchemy AppEngine 标准 - 失去与 MySQL 服务器的连接
SQLAlchemy AppEngine standard - Lost connection to MySQL server
我正在尝试从 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)
我不明白,因为设置和以前没有什么不同,所以这一定与我使用SQL炼金术的方式有关。
我用这样的东西:
create_engine("mysql+mysqldb://appuser:password@x.x.x.x/db_name?unix_socket=/cloudsql/gcpProject:europe-west1:instanceName")
我尝试了不同的值(有、没有 ip,...)。但它仍然是一样的。是版本兼容性问题吗?
我用
MySQL-python 在 app.yaml 和 SQLAlchemy 1.2.4 中:
app.yaml :
- name: MySQLdb
version: "latest"
requirements.txt :
SQLAlchemy==1.2.4
导致与 Google 云 SQL 服务器的连接丢失的原因有很多,但正确的是,您必须首先确保您的设置是正确的。我不认为这个问题是关于版本兼容性的。
根据 documentation,为了您的应用程序能够在部署应用程序时连接到您的云 SQL 实例,您需要添加用户、密码、数据库和实例Cloud SQL 的连接名称变量到app.yaml 文件中的相关环境变量(您显示的 app.yaml 似乎不包含这些环境变量)。
我建议您查看 link 中的详细信息,了解有关如何设置 CloudSQL 实例和连接到实例的详细信息。
这是 url 中的一个问题。我在连接字符串末尾添加了代码“/dbname”的特定部分,结果如下:
mysql+mysqldb://appuser:password@/db_name?unix_socket=/cloudsql/gcpProject:europe-west1:instanceName/dbname
所以最后,这个错误的意思也可以是unix socket不对
我正在尝试从 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)
我不明白,因为设置和以前没有什么不同,所以这一定与我使用SQL炼金术的方式有关。
我用这样的东西:
create_engine("mysql+mysqldb://appuser:password@x.x.x.x/db_name?unix_socket=/cloudsql/gcpProject:europe-west1:instanceName")
我尝试了不同的值(有、没有 ip,...)。但它仍然是一样的。是版本兼容性问题吗?
我用 MySQL-python 在 app.yaml 和 SQLAlchemy 1.2.4 中:
app.yaml :
- name: MySQLdb
version: "latest"
requirements.txt :
SQLAlchemy==1.2.4
导致与 Google 云 SQL 服务器的连接丢失的原因有很多,但正确的是,您必须首先确保您的设置是正确的。我不认为这个问题是关于版本兼容性的。
根据 documentation,为了您的应用程序能够在部署应用程序时连接到您的云 SQL 实例,您需要添加用户、密码、数据库和实例Cloud SQL 的连接名称变量到app.yaml 文件中的相关环境变量(您显示的 app.yaml 似乎不包含这些环境变量)。
我建议您查看 link 中的详细信息,了解有关如何设置 CloudSQL 实例和连接到实例的详细信息。
这是 url 中的一个问题。我在连接字符串末尾添加了代码“/dbname”的特定部分,结果如下:
mysql+mysqldb://appuser:password@/db_name?unix_socket=/cloudsql/gcpProject:europe-west1:instanceName/dbname
所以最后,这个错误的意思也可以是unix socket不对