Delphi 应用程序无法连接到 Windows 11 上的 MySQL

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

我们目前有大量与 MySQL 8 服务器通信的 Delphi 应用程序,这些应用程序无法在 Windows 11 上运行。它们目前在 Windows 10 上可以正确连接。

  • 德尔福12.1
  • MySQL 服务器 8.0.35(64 位)
  • libMySQL 5.7.37(32 位)
  • 开发机器:Windows 10 Enterprise 22H2
  • 部署机器:Windows 11 Enterprise 23H2

应用程序均与可执行文件位于同一文件夹中的

libmysql.dll
以及定义连接的
FDConnectionDefs.ini
一起分发。

据我了解,由于应用程序被编译为32位应用程序,因此需要使用32位MySQL驱动程序,5.7.37版本是最后可用的。当我们尝试运行任何应用程序时,我们会收到错误:

无法加载供应商库 [...libmysql]。找不到指定的模块

并附有提示:

检查 PATH 或 EXE 目录以及 x86 位。

如果我们在 EXE 文件夹中包含

FDDrivers.ini
,我们会得到相同的错误,但路径正确。

如果我们将其文件夹中具有相同 DLL 和 INI 文件的 FDAdministrator 复制到目标计算机,则会出现相同的错误。

编辑 根据建议,我们使用 ProcMon 进行了测试,发现以下内容

  1. 应用程序正确查找并加载 EXE 目录中提供的 libmysql.dll 文件

  2. Windows 11 版本在尝试加载

    libmysqld.dll
    libmysql.dll
    时失败。这就是导致错误消息的原因。

  3. Windows 10 版本不会尝试加载

    libmysqld

delphi windows-11 firedac libmysql
1个回答
0
投票

事实证明,问题出在我们安装的 Visual Studio Redistributable 版本上。我们安装的最新 x86 redistributatle 不起作用。

但是 2013 版本确实可以工作。我将按照 @re0sless 的建议尝试 2015 版本

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