Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 操作错误:";与位于';的MySQL服务器的连接中断;正在读取初始通信包';,系统错误:38“_Python_Google App Engine_Flask Sqlalchemy_Google Cloud Sql - Fatal编程技术网

Python 操作错误:";与位于';的MySQL服务器的连接中断;正在读取初始通信包';,系统错误:38“

Python 操作错误:";与位于';的MySQL服务器的连接中断;正在读取初始通信包';,系统错误:38“,python,google-app-engine,flask-sqlalchemy,google-cloud-sql,Python,Google App Engine,Flask Sqlalchemy,Google Cloud Sql,我有一个GAE应用程序设置,并通过Google Cloud SQL实例授权,但我似乎无法摆脱这个错误: OperationalError:(\u mysql\u exceptions.OperationalError)(2013,“读取初始通信包时与mysql服务器的连接中断”,系统错误:38”) 我正在使用Python27和Flask SQLAlchemy连接到db。以下是数据库信息: config.py CLOUDSQL_DB_NAME = 'db-name' GAE_PROJECT_ID

我有一个GAE应用程序设置,并通过Google Cloud SQL实例授权,但我似乎无法摆脱这个错误:

OperationalError:(\u mysql\u exceptions.OperationalError)(2013,“读取初始通信包时与mysql服务器的连接中断”,系统错误:38”)

我正在使用Python27和Flask SQLAlchemy连接到db。以下是数据库信息:

config.py

CLOUDSQL_DB_NAME = 'db-name'
GAE_PROJECT_ID = 'project-id'
CLOUDSQL_INSTANCE_NAME = 'instance-name'

SQLALCHEMY_DATABASE_URI = 'mysql+mysqldb://root@/{db_name}?unix_socket=/cloudsql/{project_id}:{instance_name}'.format(db_name = CLOUDSQL_DB_NAME,
                                                                                                                      project_id = GAE_PROJECT_ID,
                                                                                                                      instance_name = CLOUDSQL_INSTANCE_NAME)
应用程序yaml

libraries:
- name: MySQLdb
  version: latest
- name: jinja2
  version: 2.6

# [START env_variables]
env_variables:
    CLOUDSQL_CONNECTION_NAME: connection-name
    CLOUDSQL_USER: root
    CLOUDSQL_PASSWORD: password
# [END env_variables]

这是我第一个在GAE上使用Flask的应用程序,所以我不确定我是否遗漏了什么…

如果其他人有这个问题,我就解决了问题。事实证明,URI的文档有点不完整,因为我使用的是Flask而不是Webapp2,并且我缺少几个属性

下面是解决问题的正确的config.py

# Google Cloud SQL information
CLOUDSQL_USER = 'root'
CLOUDSQL_PASSWORD = '********'
CLOUDSQL_DB_NAME = 'db-name'
GAE_PROJECT_ID = 'project-name'
CLOUDSQL_CONNECTION_NAME = 'connection-name'


SQLALCHEMY_DATABASE_URI = (
    'mysql+mysqldb://{user}:{password}@localhost/{database}'
    '?unix_socket=/cloudsql/{connection_name}').format(
        user=CLOUDSQL_USER, password=CLOUDSQL_PASSWORD,
        database=CLOUDSQL_DB_NAME, connection_name=CLOUDSQL_CONNECTION_NAME)

如果其他人有这个问题,我就解决了。事实证明,URI的文档有点不完整,因为我使用的是Flask而不是Webapp2,并且我缺少几个属性

下面是解决问题的正确的config.py

# Google Cloud SQL information
CLOUDSQL_USER = 'root'
CLOUDSQL_PASSWORD = '********'
CLOUDSQL_DB_NAME = 'db-name'
GAE_PROJECT_ID = 'project-name'
CLOUDSQL_CONNECTION_NAME = 'connection-name'


SQLALCHEMY_DATABASE_URI = (
    'mysql+mysqldb://{user}:{password}@localhost/{database}'
    '?unix_socket=/cloudsql/{connection_name}').format(
        user=CLOUDSQL_USER, password=CLOUDSQL_PASSWORD,
        database=CLOUDSQL_DB_NAME, connection_name=CLOUDSQL_CONNECTION_NAME)

我可以问一下您是如何授权GAE访问sql的吗?查看“访问控制”部分时,会显示“应用引擎授权:默认情况下,此项目中的所有应用都已授权。要授权其他项目中的应用,请执行以下步骤。”,但我还是不断地得到你的报告中提到的错误OP@sqram你的app.yaml是否包含像我上面发布的那样的env_变量?我能问一下你是如何授权GAE访问sql的吗?当查看“访问控制”部分时,它显示“应用程序引擎授权:此项目中的所有应用程序在默认情况下都已授权。要授权其他项目中的应用程序,请执行以下步骤”。但我仍不断收到您的报告中提到的错误OP@sqram你的app.yaml是否包含像我在上面发布的那样的环境变量?