【问题标题】:Delphi 11.1's FireDAC and MySQL: SSL connection error: unknown error numberDelphi 11.1 的 FireDAC 和 MySQL:SSL 连接错误:未知错误号
【发布时间】:2022-06-13 21:54:21
【问题描述】:

好的,我在这上面花了一整天,我被困住了,所以我要寻求帮助。

我之前在虚拟机中安装了 Delphi 11 Enterprise,还安装了 MySQL 8.0.27(64 位)。在获得一些 32 位 MySQL dll 后,我能够使用 FireDAC MySQL 驱动程序和 Delphi IDE 中的数据资源管理器轻松连接到我的数据库。

我现在已经创建了一个新的 VM 并安装了 Delphi 11.1 Enterprise 和 MySQL 8.0.28。从以前的 VM 导出我的数据库并将其导入到这个新的 MySQL 服务器后,我尝试使用 FireDAC 附加到数据库。使用与上一个 VM 中相同的参数,并将相同的 dll 复制到 C:\Windows\SysWOW64,测试连接失败并产生以下错误:

[FireDAC][Phys][MySQL] SSL 连接错误:未知错误号

我对比了两台虚拟机连接两个数据库的参数,都是一样的。而且,MySQL 中与这两个数据库的连接似乎也是一样的。

奇怪的一件事(我想我知道为什么)是在连接失败的 VM 中,如果我查看 FireDAC 连接编辑器的 Info 选项卡,它会说它在 c 中使用 libmysql.dll: \Windows\System32 文件夹(该文件夹中没有这样的文件)。但从 FireDAC 成功连接的 VM 中的连接编辑器来看也是如此,所以我假设 System32 被映射到 C:\Windows\SysWOW64。

如果有人可以确认他们使用 Delphi 11.1 和 FireDAC 成功连接到 MySQL 8...,并且可以就我需要修复的问题提出建议,我将不胜感激。

========================

更新:我已卸载 MySQL 8.0.28,并使用开发计算机模板重新安装它。我仍然无法使用 FireDAC 连接编辑器连接到 MySQL,但只要我使用 FDPhysMySQLDriverLink 组件并将 VendorLib 属性设置为 libmariadb.dll 或 libmysql.dll(存储的 32 位版本),我就可以在运行时连接在 C:\Windows\SysWOW64 文件夹中(感谢 Ian Barker 提供的示例代码!)。我仍在努力,因为我真的很想从 IDE 连接,但至少我已经取得了一些成功。

【问题讨论】:

    标签: mysql firedac delphi-11-alexandria


    【解决方案1】:

    通过调用 h:= loadlibray('libmysql.dll') /without path/ 然后 GetModulePath(h) 以查看其完整路径,确定您的应用从何处加载 libmysql.dll .

    记住,Delphi 是 32 位的,它需要使用 32 位版本的 lobmysql.dll,而 64 位编译的程序需要相同的位。

    【讨论】:

    • 我有 64 位和 32 位版本的 libmysql.dll 和 libmysqld.dll,它们分别位于 C:\Windows\System32 和 c:\Windows\SysWOW64 中。现在,我只是尝试从 FireDAC 连接编辑器上的测试按钮附加到数据库。我将构建一个尝试在运行时加载库并查看它的位置的应用程序。
    • 哦,在我工作的 VM 中,我有一个 32 位 FireDAC 应用程序,当在调试器中运行时,我打开调试器的 Module pain,我可以看到只有 libmysql.dll正在加载(没有 ssl dll 或 libmysqld.dll),并且该文件位于 C:\Windows\SysWOW64
    【解决方案2】:

    这太疯狂了。我安装和卸载了 MySQL(以及 MySQL Workbench 和 MySQL Script)大概 10 次。最后一次安装成功了。我不知道为什么这是必要的。

    【讨论】:

      【解决方案3】:

      我今天也遇到了同样的问题,作为 mysql 未运行的一整批问题的一部分,所以我更新了它,然后遇到了上面的错误。

      我的 64 位 Delphi 10.3 程序根本无法连接 - 所以我将物理驱动程序更改为 libmariadb.dll 并解决了问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 2022-01-20
        • 1970-01-01
        • 2021-03-20
        • 1970-01-01
        • 2016-04-11
        相关资源
        最近更新 更多