나는 유연한 환경을 사용하여 ClouSQL에 연결하려고했습니다 (VM : TRUE)GAE 파이썬 - OperationalError : (2013, '쿼리시 MySQL 서버에 연결이 끊어졌습니다')
하지만 사용하여 내 응용 프로그램을 업로드 할 때 :
gcloud preview app deploy --version MYVERSION
오류가 발생합니다 :
OperationalError: (2013, 'Lost connection to MySQL server during query')
내가 '쿼리가 너무 큰하지만 난 그것을 로컬로 작동하기 때문에 그런 경우가 아니라 생각과 생산에 내가 WAN을 때 때문에이 될 수 있음을 발견 ~ MySQLdb에서 유연한 환경을 사용합니다.
내 코드 : 이것에
import os
import logging
import pymysql
class MySQL(object):
'''
classdocs
'''
# TO INSTALL LOCAL DB: http://stackoverflow.com/questions/30893734/no-module-named-mysql-google-app-engine-django
@classmethod
def getConnection(cls):
# When running on Google App Engine, use the special unix socket
# to connect to Cloud SQL.
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
logging.debug('PROJECT [%s], INSTANCE[%s] - USER [%s] - PASS [%s], SCHEMA [%s]',
os.getenv('CLOUDSQL_PROJECT'),
os.getenv('CLOUDSQL_INSTANCE'),
os.getenv('CLOUDSQL_USER'),
os.getenv('CLOUDSQL_PASS'),
os.getenv('CLOUDSQL_SCHEMA'))
db = pymysql.connect(unix_socket='/cloudsql/APP:REGION:INSTANCENAME')
#os.getenv('CLOUDSQL_PROJECT'),
#os.getenv('CLOUDSQL_INSTANCE')),
#user=os.getenv('CLOUDSQL_USER'),
#passwd=os.getenv('CLOUDSQL_PASS'),
#db=os.getenv('CLOUDSQL_SCHEMA'))
# When running locally, you can either connect to a local running
# MySQL instance, or connect to your Cloud SQL instance over TCP.
else:
db = pymysql.connect(host=os.getenv('DBDEV_HOST'), user=os.getenv('DBDEV_USER'),
passwd=os.getenv('DBDEV_PASS', ''), db=os.getenv('DBDEV_SCHEMA'))
return db
어떤 생각?
감사합니다!
안녕 @Bernd Buffen 여러분의 도움을 주셔서 감사합니다, 주요 문제 다음은이 같은 SQL을 통해이 값을 변경할 수 있습니다
데이터베이스를 다시 시작해야합니다 로컬로 실행하고 있지 않습니다. CloudSQL (gae 서비스)을 사용하고 있습니다.이 서비스를 사용하고있을 때 프로덕션 환경에서이 오류가 발생하므로이 디렉토리를 볼 필요가 없습니다. 미안, 너 무슨 뜻인지 몰랐어. – SupimpaAllTheWay
@Dyego - SQL을 통해 변경할 수도 있습니다. 내 대답에 그것을 추가했습니다 –
죄송합니다 너무 늦었 어, 방금 MySQL에 연결되어 있고 이미 "max_allowed_packet | 4194304 |"설정되어 있습니다. 나는 그 문제를 조사하는 데 도움이 되었기 때문에 답을 upvoted. 일어날 수있는 다른 일을 생각하면 도움을 주시면 고맙겠습니다. :) 감사. – SupimpaAllTheWay