Ich habe versucht, zu ClouSQL mit Flexible Environments (vm: true) verbindenGAE Python - OperationalError: (2013, 'Verlorene Verbindung zum MySQL-Server während der Abfrage')
aber wenn ich meinen app lade ein:
gcloud preview app deploy --version MYVERSION
wird ein Fehler ausgelöst:
OperationalError: (2013, 'Lost connection to MySQL server during query')
ich fand heraus, dass es sein könnte, da die Abfrage zu groß ist, aber ich denke, das ist nicht der Fall ist, weil es vor Ort und auf die Produktion funktioniert, wenn ich wans' t Verwenden flexibler Umgebungen mit MySQLdb.
Mein Code:
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
Irgendwelche Gedanken dazu?
Danke!
Hallo @Bernd Buffen und vielen Dank für Ihre Hilfe, das Hauptproblem Ich benutze es nicht lokal, ich benutze CloudSQL (gae service) und dieser Fehler tritt bei der Produktion auf, wenn ich diesen Dienst benutze, also habe ich dieses Verzeichnis nicht: \. Tut mir leid, wenn ich nicht verstanden habe, was du meinst. – SupimpaAllTheWay
@Dyego - Sie können es auch über SQL ändern. Ich habe es in meiner Antwort hinzufügen –
Sorry für so spät, ich habe gerade mit mysql verbunden und es ist bereits gesetzt "max_allowed_packet | 4194304 |". Ich habe Ihre Antwort aufgefrischt, weil sie mir geholfen hat, das Problem zu untersuchen. Wenn Sie an etwas anderes denken, was passieren könnte, würde ich mich über die Hilfe freuen. :) Vielen Dank. – SupimpaAllTheWay