Delphi 无法连接到MySql,声称libmysql.dll不在路径中,而它是

ds97pgxw  于 2022-11-23  发布在  Mysql
关注(0)|答案(1)|浏览(360)

在任何人将此标记为重复之前,请阅读到最后,因为许多类似的问题都没有帮助。
我刚刚在Windows 11上安装了 Delphi 社区版和MySql(推荐从this link下载),但是在将Delphi连接到MySql时遇到了麻烦。
我使用MySql Workbench创建了一个新连接,并创建了一个包含一个表和一些示例数据的新数据库。
如果我启动 Delphi 并创建一个新的Windows VCL项目,然后选择Tools -〉FireDAC Explorer,然后尝试展开连接,我会得到一个错误“Cannot load vendor library [libmysql.dll,libmariadb or libmysqld.sll]
我假设只有libmysql.dll与我相关,因为我没有使用Maria,并且在我的系统中没有其他DLL。我使用sigcheck来检查我确实有一个64位版本的DLL。
如果我在 Delphi 中使用数据资源管理器,也会出现同样的错误。
我在这里读到了很多关于这个错误的问题,但是我看到的所有问题都暗示了两件事中的一件,这两件事都不适用于这里...
1.将DLL的位置添加到PATH环境变量中--我在C:\Program Files\MySQL\MySQL Server 8.0\lib文件夹中有libmysql.dll,并将其添加到我的PATH环境变量中,但没有任何帮助。我重新启动了 Delphi ,但没有任何乐趣。我甚至在Delphi中的表单中添加了一个TEdit,代码如下...

Edit1.Text := GetEnvironmentVariable('PATH');

这确认了我已经正确地设置了环境变量。
1.将DLL复制到项目的bin文件夹中。我也尝试过这个方法,但没有任何效果。但是,由于我还没有尝试将代码连接到MySql,所以我不希望这个方法有帮助。我甚至不能让 Delphi 本身连接。
有人有什么想法吗?我知道有很多关于这个错误的问题,但没有一个对我有用。
谢谢

5anewei6

5anewei61#

请检查错误信息的其余部分。有时它指定了您需要的DLL的位数。很容易丢失该位并得到错误的版本。
我认为MySql自带一个64位的DLL,但出于某种原因,我从来没有解决, Delphi 似乎需要一个32位的版本。我不得不四处搜索,并从第三方网站下载一个,我不喜欢,但它确实工作。

相关问题