---
slug: "mysql-django-no-engine-substitution"
title: "Django で 2013, 'Lost connection to MySQL server during query' が出たので NO_ENGINE_SUBSTITUTION を無くした"
description: "Django で MySQL 接続する設定の `ENGINE` に `django.db.backends.mysql` を指定しても 'No DB engine substitution' で動かないときの原因と対処。"
url: "https://www.ytyng.com/blog/mysql-django-no-engine-substitution"
publish_date: "2021-11-14T11:10:12Z"
created: "2021-11-14T11:10:12Z"
updated: "2026-05-11T13:21:24.756Z"
categories: ["Django", "MySQL"]
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/e95bc00b573d4f2d937cb8e34939e6f1.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "ja"
---

# Django で 2013, 'Lost connection to MySQL server during query' が出たので NO_ENGINE_SUBSTITUTION を無くした

<p>Django で、MySQL (5.7) にクエリを出す時</p>
<pre>(2013, 'Lost connection to MySQL server during query')</pre>
<p><br />のエラーが出て、処理が停止するようになった。</p>
<p><br />まず、接続中の コネクションで、 innodb_strict_mode を見てみる</p>
<pre><span>SHOW VARIABLES LIKE </span><span>'%innodb_strict_mode%'</span>;</pre>
<p>ON である必要がある。</p>
<p><a href="https://django-mysql.readthedocs.io/en/latest/checks.html#django-mysql-w002-innodb-strict-mode">https://django-mysql.readthedocs.io/en/latest/checks.html#django-mysql-w002-innodb-strict-mode</a></p>
<p>これは 既にONになっていた。</p>
<p>次に、sql_mode を確認する。</p>
<pre><span>SELECT </span><span>@@SESSION.sql_mode</span>;</pre>
<pre><span>STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</span></pre>
<p>MySQL サーバの、NO_ENGINE_SUBSTITUTION を外して再起動</p>
<p></p>
<pre>STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER</pre>
<p>この問題は出なくなった</p>
