MySql ODBC Windows XP到Windows 7

我试图从Windows XP移植到Windows 7的大型应用程序。这个应用程序必须在两个平台上并排工作,因为我有22个客户机,他们都是Windows XP,但随着时间的推移将逐一转换为Windows 7 。

我有一个MySql数据库,在XP中工作正常,已经有几年了。 在我的第一台Windows 7机器上,当我运行代码行来打开与db的连接时,它失败了:

MyOdbcConnection.Open()

错误是“错误[IM002] [Microsoft] [ODBC驱动程序pipe理器]数据源名称未find,没有指定默认驱动程序”。

为了解决这个问题,我从MySql下载了最新的ODBC 5.2驱动程序。 我同时下载了32位和64位的。 我进入了ODBC数据源pipe理器,为32位和64位,并成功添加我的数据源为这个数据库的用户DSN,系统DSN和文件DSN。 我也可以成功地从MySql工作台连接到数据库。

这是我的连接string。 除了使用5.1驱动程序之外,它与其他工作机器相同。

Dim MySqlConString As String = "DRIVER={MySQL ODBC 5.2 Driver};" & _ "SERVER=myserver;" & _ "DATABASE=mydb;" & _ "UID=root;" & _ "PASSWORD=mypw;" & _ "OPTION=3" – Jason Shoulders 3 hours ago 

尽pipe能够添加数据源并通过工作台连接到数据库,但是当我运行我的exe文件时,仍然出现错误。 有什么build议么?

显然我需要有:

 DRIVER={MySQL ODBC 5.2w Driver} 

似乎跛脚。 我不确定“w”是从哪里来的。

添加一个用户,系统和文件DSN是没有意义的,因为你的代码没有使用任何一个。 您正在使用通常所说的“无DSN”连接。 如果您正在使用任何已创建的DSN,则连接字符串将为“DSN = my_created_dsn”或FILEDSN = path_to_file。 当您使用“DRIVER = {xxx}”时,您所做的只是告诉ODBC驱动程序管理器加载哪个驱动程序,连接字符串中的其他属性告诉驱动程序要连接的是哪个mysql db。 您用于xxx的名称需要与odbc驱动程序选项卡中显示的驱动程序的名称完全相同。 如果您要继续这样连接,您可以删除所有的DSN。

你的32位程序不会找到一个64位的odbc驱动程序。 尝试在命令窗口中使用以下命令设置32位驱动程序

 %WINDIR%\syswow64\odbcad32.exe 

我正在使用32位Windows XP专业版SP3下使用Visual Fox Pro 9.0

我有同样的问题,但ID没有工作:

驱动程序= {MySQL ODBC 5.2a驱动程序}或与驱动程序= {MySQL ODBC 5.2驱动程序}

有效!!! 有:

驱动程序= {MySQL ODBC 5.2 ANSI驱动程序}或驱动程序= {MySQL ODBC 5.2 UNICODE驱动程序}

尝试一下。