pymysql.err.OperationalError: (2013, «Потерянное соединение с сервером MySQL во время запроса») - PullRequest
0 голосов
/ 01 ноября 2019

У меня были проблемы с подключением к герою ClearDB с моим приложением для колбы, использующим SQLAlchemy с моими данными DB_URI:

mysql+pymysql://username:password@remote-hostname-xx.cleardb.net/heroku_c52490fb3111cda?reconnect=true

И это была ошибка:

app[web.1]:     return Connection(*args, **kwargs)
app[web.1]: TypeError: __init__() got an unexpected keyword argument 'reconnect'

Решение заключалось в удалении параметра ?reconnect=true. Но там, где также предупреждения , что это может привести к проблемам с потерей соединения, и действительно, это мгновенно произошло и со мной:

2019-11-01T11:00:28.244117+00:00 app[web.1]:     CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
2019-11-01T11:00:28.244119+00:00 app[web.1]: pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
2019-11-01T11:00:28.244122+00:00 app[web.1]: 
2019-11-01T11:00:28.244124+00:00 app[web.1]: The above exception was the direct cause of the following exception:
    .
    .
    .
2019-11-01T11:00:28.244267+00:00 app[web.1]:     CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
2019-11-01T11:00:28.244268+00:00 app[web.1]: sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query')
2019-11-01T11:00:28.24427+00:00 app[web.1]: [SQL: SELECT users.id AS users_id, users.email AS users_email, users.password AS users_password, users.`admin` AS users_admin 
2019-11-01T11:00:28.244272+00:00 app[web.1]: FROM users]
2019-11-01T11:00:28.244349+00:00 app[web.1]: (Background on this error at: http://sqlalche.me/e/e3q8)
2019-11-01T11:00:28.245066+00:00 app[web.1]: 10.45.155.176 - - [01/Nov/2019:11:00:28 +0000] "GET /users HTTP/1.1" 500 0 "-" "-"

С первой попытки, которую я получаю каждый раз, когда 500: internal server error. Вторая попытка обычно отправляет обратно код 200: ok, но такое поведение естественным образом нарушает работу моего API.

Проверка журналов, ошибка ясна:

(pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query')

СейчасУ меня также есть tip , чтобы использовать пул соединений SQLAlchemy для решения проблемы.

Мой вопрос: Как я могу решить эту проблему с помощью пула SQLAlchemy или мне даже нужно использовать это для исправления этой ошибки переподключения?

...