【问题标题】:how to connect to a MySQL server [closed]如何连接到 MySQL 服务器 [关闭]
【发布时间】:2014-07-22 09:22:44
【问题描述】:

首先,当谈到这个程序时,我是一个完全的新手。

我一直在努力建立与我使用 MySQL Workbench 设置的本地 SQL 服务器的连接。我确定我的 SQL 服务器正在运行,因为我可以在控制面板 - 管理工具中设置一个 ODBC 数据源,它连接到我的本地服务器(它还列出了我的数据库)。

现在谈到 delphi XE-5。我认为建立连接就像使用端口、登录名和密码登录 IP 一样简单,但经过 2 天的阅读和尝试后,我发现无知是幸福的。

所以有人可以一步一步地告诉我要使用什么连接器以及如何设置它。我的 exe 文件夹中需要哪些可能的 dll 和/或驱动程序文件。如何告诉我的应用程序在那里。以及我可能缺少的其他东西。

提前致谢

【问题讨论】:

  • “我的本地 SQL 服务器”是什么意思? MySQL的一个实例?还是 Microsoft SQL Server 的一个实例?如果是前者,请去掉sql-server标签。
  • docwiki.embarcadero.com/RADStudio/XE5/en/… 您最终会希望摆脱基于表单的非可视组件,但这应该可以帮助您入门。
  • @vmai 已编辑。抱歉花了一点时间。我的 ip 由于某种原因被阻止了
  • @j... 谢谢。我马上就测试一下
  • dbExpress 需要来自 5.1 服务器 (x86) 的 libmysql.dll:dev.mysql.com/downloads/mysql/5.1.html

标签: mysql delphi delphi-xe5


【解决方案1】:

对此最可能的解释可能是您使用的 libmysql.dll 版本与您的 DBX 设置不匹配,尤其是它的 mySql 驱动程序。对于 XE6,我在查看您的问题时遇到了这个问题,原因是我尝试使用的 libmysql.dll 版本对于 XE6 DBX 驱动程序来说显然太新了;不管这是否正确,下面的步骤都可以解决我的 XE6 的问题。

(注意到 q 上的 XE5 标签和没有 D7 的读者可能会在他们第一次看到这主要是关于 D7 时发现他们的鼠标向 -1 按钮抽搐。但是, 当前的许多 SO Delphi qs 都来自 D7 用户,我敢肯定,我不是唯一一个在 D7 中面临将 mySql 改装到 DBX 问题的人;更熟悉 mySql 的人可能会说它们仅适用于 XE5/6。)

这个 Q 启发了我尝试让 mySql 与 D7 和 XE6 一起工作,而之前对此一无所知。

关于 D7,很快我发现我给自己制造了一个问题 14 年前 D7 时没有得到 libMySql.dll 的副本。我还在 EMBA 的 Quinn Wildman 的 EMBA 新闻组中找到了一篇关于 XE6 和最新版本 dll 的问题的帖子,说在这种情况下 OP 的 DLL 版本太新。

我第一次尝试安装 mySql - 基本上是通过安装当前 mySqll Workbench 的副本 - 似乎证实了 QW 所说的;我无法使用随附的 libmysql 版本在 D7 或 XE6 中打开 TSqlConnection。幸运的是,mySql 网站有一个存档,我找到并安装了 Workbench 的早期版本 5.0.18,它有一个 2006 版本的 libmySql.dll(顺便说一句,我发现这个早期版本的 Workbench 几乎无法使用,不像当前的,但那是另一回事了)。

获取和安装较新版本的 WB(例如 5.0.18)附带的 libmysq.dll 可能是从太新的版本回滚以使其与 XE5 或 6 一起使用所必需的全部内容。

让它与 D7 一起工作变得相当棘手,因为 D7 不支持开箱即用的 mySql v5.x。幸运的是,有一个站点包含用于 D7 的 v5 DBX 驱动程序。但即使配备了它,让 v5.x 的 mySql 与 D7 一起使用仍然是一种性能。我敢说熟悉 mySql 的人可能知道更简单的方法,但至少下面的方法有效。

从我的 Win7 64 位机器上完全卸载 mySql 开始,如下 较早的尝试失败,并删除了 C:\Users[...] 下面的所有 mySql 内容(包括任何 mySql 数据库文件):

  1. a) 转到http://www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html 并下载源和 dll zip 文件。您需要源 zip 中的 ini 文件。

    b) 打开源 zip 并按照 dbxdrivers.ini 中的说明将驱动程序设置复制到 Delphi 7 安装目录下的 \Shared\DBExpress 文件夹中的同名 ini 文件中。不要忘记将驱动程序名称添加到 dbxdrivers.ini 文件顶部的列表中。

    c) 同样,将源 zip 中的 dbxconnections.ini 的内容编辑到 [...]\Shared\DBExpress

  2. 访问 www.Mysql.com,如果您还没有帐户,请创建一个帐户。 下载当前版本的 MySql Workbench(MySql 的 6.1,截至 2014 年 7 月 22 日 转到存档选项卡并下载 Workbench 5.0.18。

  3. 安装早期 5.0.18 版本的 Workbench

  4. 从 5.0.18 的程序文件(x86)\MySql 文件夹下的其他地方复制 libmysql.dll,因为下一步将删除那里的原始文件(!)

  5. 安装更高版本的 Workbench,如果之前没有设置 MySql 起,允许安装程序向导设置新的本地服务器。 设置root密码并创建一个用户帐户。我叫我的“sa”。

  6. 使用Workbench中的Sql Script窗口创建测试数据库,我用的是MATestDB 作为名称,因为已经有一个名为“测试”,并在其中创建一个表 并添加几行。

  7. 将步骤 1 中的 dll zip 中的 dbxopenmysql50.dll 复制到步骤 1 中提到的 Borland Shared\DBExpress 目录

  8. 转到 Shared\DBExpress 目录并编辑两个 ini 文件,以便数据库、 用户名和密码与第 5 步和第 6 步中的一致。

  9. 在 D7 IDE 中创建一个新项目并将 TSqlConnection 添加到其主窗体。 检查您是否可以将其 Connected 属性设置为 True。

  10. 将项目保存到新文件夹并复制到其中

    • 第 4 步保存的 libmysql.dll
    • dbxopenmysql50,dll 来自步骤 1 中的 dll zip
    • 来自 [...]\Shared\DBExpress 的两个 ini 文件
  11. 对 XE6 重复步骤 9 和 10。

  12. 现在应该设置好用于 D7 和 XE6 的 mySql。

【讨论】:

  • 我能够通过安装 MySQL Server 5.1 连接 TSQLConnection,然后将 libmysql.dll 复制到我的 Win7 文件夹中。我仍然不确定我是否可以访问数据或其他任何内容,但目前我没有收到任何错误。
  • 顺便说一句,这看起来很棒。正是我开始这篇文章时所希望的。这个问题似乎确实存在一些问题。
  • 你有可能接受这个答案吗?
猜你喜欢
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2010-11-28
  • 2013-02-14
相关资源
最近更新 更多