【问题标题】:Delphi with MySQL 64-bit FiredacDelphi 与 MySQL 64 位 Firedac
【发布时间】:2020-06-28 15:18:10
【问题描述】:

您好,我一直在我的开发环境中使用 MySQL,64 位和 Firedac,并且正在尝试将应用程序移动到新机器上。我已经在新机器上安装了 MySQL 8 并且工作正常。

我已经制作了一个简单的应用程序来在 delphi XE8 中进行连接。我构建了一个 64 位应用程序。我在可执行文件的目录中包含了一个 mysql dll。好像需要

libmysql.dll 来自 2019 年 6 月 10 日 @ 09:51 3,984 KB。如果我从开发机器上的 exe 目录中删除这个文件,我会得到错误:

[FireDAC][Phys][MySQL]-314。无法加载供应商库 [libmysql.dll 或 libmysqld.dll]。指定的模块无法找到。提示:检查它是否在 PATH 或应用程序 EXE 目录中并且具有 x64 位。

我只能在 exe 目录中包含 libmysql.dll 的情况下在 IDE 之外运行程序。

如果我将包含应用程序的文件夹复制到新机器上,无论目录中是否包含 libmysql.dll,我都会收到与上述相同的错误。

任何有 MySQL 64 版本 8 和 Firedac 经验的人都可以帮我解决这个问题吗?应该是个很简单的东西,需要在没有安装delphi的新机器上运行。

谢谢 道格

【问题讨论】:

标签: mysql delphi


【解决方案1】:

如果您的libmysql.dll 确实丢失并且libmysql.dll 需要的库丢失,您将收到相同的错误消息。在这两种情况下,库都无法加载。

虽然您当然应该首先确保可以找到该库(例如,将其放在与您的可执行文件相同的目录中),但此问题的常见原因是缺少 Visual C++ Redistributable for Visual Studio。它是libmysql.dll 和 MySQL 服务器本身(以及许多其他软件)的prerequirement,您需要在目标系统上安装此软件包。

(可选)对于 SSL 支持,您还需要 OpenSSL libraries。它们不一定需要安装,您只需复制 2 个 dll,例如到与libmysql.dll 相同的目录。

【讨论】:

  • 谢谢你,SolarFlare。我想知道是否是我的 Delphi XE8 / FireDac 版本试图访问正确的 libmysql.dll。我安装了MYSQL 8,所以我想知道dll是否不兼容......但是,如果我正确安装了MySQL,我是否也安装了visual C++ redistributable?
  • MySQL 服务器还需要运行时库(但如果您想访问远程服务器,则不必在新系统上安装 MySQL 服务器)。如果您的 libmysql.dll 与您的 application.exe 在同一目录中,它应该使用并找到它,如果没有,请确保首先测试它(因为很明显可能实际上找不到您的 dll)。但是通常怀疑你的错误是缺少 vc++ 运行时包(它会给你同样的错误,就好像 dll 根本不存在一样),安装它没有任何害处。
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
相关资源
最近更新 更多