OperationalError: "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
OperationalError: "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
我有一个 GAE 应用程序设置并使用 Google 云 SQL 实例授权,但我似乎无法摆脱这个错误:
操作错误:(_mysql_exceptions.OperationalError) (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
我正在使用 Python27 和 Flask-SQLAlchemy 连接到数据库。这是数据库信息:
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)
app.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)
我有一个 GAE 应用程序设置并使用 Google 云 SQL 实例授权,但我似乎无法摆脱这个错误:
操作错误:(_mysql_exceptions.OperationalError) (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
我正在使用 Python27 和 Flask-SQLAlchemy 连接到数据库。这是数据库信息:
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)
app.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)