【问题标题】:Delphi XE6 on Windows 7 64bit, FireDAC cannot find libmysql.dllWindows 7 64bit 上的 Delphi XE6,FireDAC 找不到 libmysql.dll
【发布时间】:2014-05-29 18:18:27
【问题描述】:

我和Delphi XE5 FireDAC Error: Cannot load vendor library libmysql.dll or libmysqld.dll有一点不同的问题

我正在 Windows 7 64 位上评估 Delphi XE6,我希望使用 FireDAC 连接到 MySQL 数据库。

我已经下载了libmysql.dll并将文件安装在C:\Windows\SYSTEM32\

在设计时间内尝试将TFDConnection.Active 设置为true 后,出现如下所示的错误对话框。

所以我尝试使用TFDPyhsMySQLDriverLink,我已将TFDPyhsMySQLLink.VendorLib 设置为C:\Windows\System32\libmysql.dll,并将TFDConnection.DriverName 设置为指向TFDPyhsMySQLLink.DriverID,但出现如下所示的错误对话框。

我尝试将libmysql.dll 放置在C:\Windows\System32\bin,但错误对话框仍然与上面显示的相同。

请指导我如何解决此问题。

【问题讨论】:

  • Delphi IDE 是 32 位的,您将库存储到 64 位系统文件夹中。
  • 我应该把 libmysql.dll(64bit) 放在哪里?,我发现了一个关于 `C:\Windows\SysWOW64` 的其他相关问题的评论,所以我也尝试将文件放在那里但是它不工作。
  • 库必须是 32 位的。这就是错误消息告诉您的内容。尝试做what Sir Rufo suggests

标签: mysql delphi libmysql


【解决方案1】:

仔细阅读这个comment和这个comment

有几个事实可以解决这个问题。 - Delphi IDE 是一个 32 位应用程序,所以我需要 libmysql.dll(32 位版本)而不是 64 位版本。 - libmysql.dll 版本不依赖于 MySQL 服务器本身,因为我曾经误解过 - C:\Windows\SysWOW64 等同于 C:\Windows\System32 但它是为 32 位应用程序(如 Delphi)存储系统 dll 的地方

所以我把libmysql.dll(32位版本)放在C:\Windows\SysWOW64,终于问题解决了。

【讨论】:

  • 只有一句话关于在设计时连接到数据库。打开希望在设计时对某些硬编码的数据库有工作访问权限的项目(保存项目时保持活动状态)是非常烦人的。我个人会避免在设计时完全连接到 DB,或者至少写一个大便笺,以在保存项目之前不要忘记将 Active 属性设置为 False。但也许这些天更好,我不知道......由于更易于维护,我仍然更喜欢在运行时进行所有数据库绑定。
  • 不错! libmysqld.dll 文件呢?
【解决方案2】:

xampp

C:\xampp\mysql\lib\libmysql.dll 
C:\xampp\mysql\lib\libmysqld.dll

复制到

C:\Program Files (x86)\Embarcadero\RAD Studio\XX.X\bin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 2014-12-30
    • 2014-10-17
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多