【问题标题】:Cannot Connect to Mysql Database From delpi Xe5 TSqlConnection无法从delpi Xe5 TSqlConnection连接到Mysql数据库
【发布时间】:2014-10-13 13:03:07
【问题描述】:

我正在尝试使用 Delphi Xe5 和火猴移动应用程序连接到 MySQL 数据库。 我正在使用 TSQLConnection 连接到数据库,但出现错误 DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.

我已经阅读了以下文章,其中没有一个有效的解决方案。

文章:

DBX Error: Driver could not be properly initialised

http://wiltonsoftware.com/posts/view/getting-embarcadero-dbexpress-mysql-working-dbx-error-driver-not-initialized

他们的解决方案似乎都不起作用,我在 Windows 64x 上使用 delphi xe5。 我已尝试下载 zip 文件 libmysql.dll 并复制到以下提到的路径中,但无济于事。

C:\Users\Public\Documents\RAD Studio\12.0\Bpl
C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin

谁能帮助我理解为什么我无法连接到我的 MySQL 数据库?

【问题讨论】:

  • MySql 在 Win7-64 位上的 XE4 和 XE6(没有 XE5)上运行良好。但是,我从他们的网站上完整安装了 mySql 5.6,我不只是 d/load DLL。完整安装会安装一个 mySql 服务器服务。如果您还没有安装,也许您应该尝试完整安装。
  • 顺便说一句,您的错误消息是来自 DBX 的标准通用错误消息,似乎意味着“某处出了点问题”。我不建议您切换到 FireDAC,但您可以尝试使用 FireDAC 连接连接到您的数据库,因为 FireDAC 的错误消息往往比 DBX 的更具体和更有帮助,如果它是配置,可能会直接导致您遇到问题一个(FD 昨天用 IB 为我做了)。
  • @martynA 我现在正在安装mysql,看看问题是否解决。如果它不起作用,我将使用 fireac,看看是否有帮助。谢谢
  • @martynA FDConnection 连接没有问题。
  • 好。我写了我所说的作为答案,因为人们来这里寻找答案,但似乎并不总是注意到解决方案何时出现在 cmets 中。

标签: mysql delphi


【解决方案1】:

你的错误信息

DBX Error: Driver could not be properly initialized. Client library may be missing, 
not installed properly, of the wrong version, or the driver may be missing from the 
system path.

是来自 DBX 的标准通用版本,似乎意味着“某处出了点问题”。错误报告似乎不是 DBX 的强项。最近有几次我遇到了这个错误,当问题结果与你所期望的完全不同时。令人讨厌的是,我只是发现,因为我碰巧在 IDE 中打开了“异常中断”,并且可以看到最初的异常带有完全不同且更具启发性的信息,但 DBX 驱动程序似乎重新引发至少在我遇到的情况下,该文本完全被其通用的、无信息的版本所取代。

正如您随后发现的那样,FireDAC 连接可能会成功连接 DBX 失败的地方,即使失败,它的错误消息也比 DBX 的更具体。很遗憾,因为我发现 FD 设置起来更巧妙(就像我总是忘记它的 SqlWait 组件,它直到 r/time 才告诉我我有)。所以,我不建议任何人如果已经让 DBX 在给定数据库上工作,就应该切换到 FireDAC,只是 FD 可以成为有用的诊断工具。

【讨论】:

  • 我现在遇到了另一个问题。我的 Rad 工作室在我今天早上发帖后就崩溃了。我卸载并重新安装它的工作。但现在我的 fdconnection 也出现错误。错误:[FireDAC][Phys][MySQL]-314. Cannot load vendor library[libmysql.dll or libmysqlgld.dll]. The system cannot find the file specified. Hint: check it is in the PATH or application EXE directories, and has 86 bitness 是什么原因导致的?
  • 那么,您是否确认 libmysql.dll 在您的路径上,并且它是 32 位版本,而不是 64 位版本?顺便说一句,自从第一版以来我一直在使用 Delphi,不记得上次在 IDE 崩溃后我不得不重新安装它——通常重启 PC 是最必要的。更有可能的是,您的 mySql 设置被崩溃损坏了,特别是如果您的 PC 在安装后没有重新启动,所以我要做的第一件事就是重新安装 mySql,而不是 Delphi。
  • 我如何找到应用程序正在寻找的路径?
  • 情况正好相反。系统有一组已定义的路径,您可以按如下方式访问: 控制面板 |系统高级系统设置并在弹出窗口中单击环境变量按钮,然后在系统变量列表中查找显示“路径”的选项。如果在应用程序的文件夹中找不到 dll,Windows 会在此处查看(即 IDE 放置已编译的 .Exe 的位置,不一定与项目的文件夹相同)。
猜你喜欢
  • 2014-03-15
  • 2019-04-11
  • 2016-09-30
  • 2010-12-16
  • 1970-01-01
  • 2020-04-08
  • 2016-12-03
  • 2014-01-25
相关资源
最近更新 更多