【Django】django.db.utils.OperationalError: (2006, ‘MySQL server has gone away’)

【Django】django.db.utils.OperationalError: (2006, ‘MySQL server has gone away’)

djangoで定期実行の処理を実行していたところあるところから以下のようなエラーになったので対処法を記載しておきます。

django.db.utils.OperationalError: (2006, 'MySQL server has gone away')

原因

おそらく、古いDBとのコネクションが残ってしまっていたことが原因と考えられます。

そのため明示的に古いコネクションは閉じるようにコードを修正します。

対処法

1. close_old_connectionsをimportする

処理の先頭で下記のようなコードを記載します。

from django.db import close_old_connections

2. 古いDBのコネクションをクローズ

処理の頭、1のimport文よりも後ろに下記の処理を記載します。

close_old_connections()

これを実行することで有効期間をすぎたDBのコネクションを閉じることができるようです。

以上でエラーがなくなるのではないかと思います。試してみてください。

Djangoカテゴリの最新記事