如何将最新的 django 服务器连接到 MySQL 5.1 数据库? (不可以升级MySQL版本)

问题描述 投票:0回答:1

我有一个 MySQL 服务器,它是不是由我开发的软件系统的一部分。因此,我不可能将该 MySQL 服务器升级到较新的版本,因为这可能会破坏软件系统与该数据库交互的能力。

我需要在面向公众的 Django 应用程序上读取该数据库。 django 版本是最新的 LTS (4.2)。

Django 的文档列出了 MySQL 的两个数据库 API 驱动程序选项:

  1. mysql客户端
  2. MySQL 连接器/Python

这两个最新版本都不支持访问 MySQL 5.1 服务器

选项 1. 仍然适用于 Debian 11,但在子类中覆盖了一些方法,但不适用于 Debian 12。

当我将生产服务器从 Debian 11 升级到 12 时,如何确保我的 Django 应用程序仍然可以工作?

我尝试使用 MySQL Connector/Python 和选项

use_pure
,但它给了我错误
django.db.utils.DatabaseError: (1193, "1193 (HY000): Unknown system variable 'default_storage_engine'", 'HY000')

我不确定在子类化时必须修补什么,才能恢复与 MySQL 5.1 的兼容性。

mysql django mysql-connector-python libmysqlclient
1个回答
0
投票

我找到了适合我的特定用例的解决方案。它归结为子类化 django 的 mysql 数据库后端 (

django.db.backends.mysql
) 并在连接到旧版 MySQL 服务器时调整它传递给
mysqlclient
(
MySQLdb.connect
) 的参数。

© www.soinside.com 2019 - 2024. All rights reserved.