如何连接到MySQL服务器

时间:2014-07-22 09:22:45

标签: mysql delphi delphi-xe5

首先,对于这个程序,我是一个完整的新手。

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:2)

最可能的解释可能是您正在使用的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,很快就发现我为自己造成了一个问题 当D7在14年前出现时,没有获得libMySql.dll的副本。我还在EMBA的新闻组中找到了一篇关于XE6和最新版dll的问题的关于XE6和最新版本的dll的问题的一篇文章,他说在这种情况下,OP有一个太新版本的DLL。

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

获取并安装较新版本的WB附带的libmysq.dll,例如5.0.18,可能只需要从过时的版本回滚以使其与XE5或6一起使用。 / p>

让它与D7一起使用变得相当棘手,因为D7不支持mySql的v5.x开箱即用。幸运的是,有一个站点带有用于D7的v5 DBX驱动程序。但即使配备了这个,使用d7的mySql的v5.x仍然有点性能。我敢说熟悉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的内容编辑到其中 [...] \共享\ dbExpress的

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

  3. 安装早期5.0.18版本的Workbench

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

  5. 安装Workbench的更高版本,如果之前未设置MySql   up,允许安装程序向导设置新的本地服务器。   设置root密码并创建用户帐户。我把我叫做'sa'。

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

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

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

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

  10. 将项目保存到新文件夹并复制到该文件夹​​

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

  12. 现在可以设置mySql for D7和XE6。