Как подключить современный сервер django к базе данных MySQL 5.1? (Обновление версии MySQL не является вариантом)

У меня есть MySQL-сервер, который является частью программной системы, разработанной не мной. Поэтому я не могу обновить этот MySQL-сервер до более новой версии, поскольку это может нарушить способность программной системы взаимодействовать с этой базой данных.

Мне нужен доступ на чтение к этой базе данных в моем публичном django-приложении. Версия django - последняя LTS (4.2).

В документации к Django перечислены два варианта драйвера API баз данных для MySQL:

  1. mysqlclient
  2. MySQL Connector/Python

Они оба в своих самых актуальных версиях не поддерживают доступ к серверам MySQL 5.1

Вариант 1. по-прежнему работает на Debian 11, с некоторыми перезаписанными методами в подклассе, но не на Debian 12.

Как мне убедиться, что мое приложение django продолжает работать, когда я обновляю его рабочий сервер с Debian 11 до 12?

Я пробовал использовать MySQL Connector/Python с опцией use_pure, но это дает мне ошибку django.db.utils.DatabaseError: (1193, "1193 (HY000): Unknown system variable 'default_storage_engine'", 'HY000').

Я не знаю, что нужно изменить в этом подклассе, чтобы восстановить совместимость с MySQL 5.1.

Я нашел решение для моего конкретного случая использования. Оно сводится к подклассификации бэкенда базы данных mysql в django (django.db.backends.mysql) и адаптации параметров, которые он передает в mysqlclient (MySQLdb.connect) при подключении к устаревшему MySQL-серверу.

Вернуться на верх