关于windows下安装mysql的驱动
问题描述:在Windows下安装MySQL驱动使用MySQL Connector/NET安装后,部分机器无法在控制面板-管理工具-数据源中找到对应的MySQL驱动选项。
测试环境:Windows 7 64位
主要原因:找不到驱动的原因是因为驱动已安装,但系统未识别,需要进行注册。
解决办法:(在安装之前请先阅读完整篇文章,下面解释了打包的内容)
首先安装vcredist包中对应版本的运行库,包括32位和64位版本。这是Windows C++的运行库,安装过程很快。由于现在的系统大部分都是精简版,所以在开发电脑上安装这个包是很常见的。
正常安装MySQL Connector/NET驱动。如果您先安装了该驱动,然后发现在控制面板中找不到它,请跳过此步骤,只需确保先安装了该驱动,然后继续下面的第三步。
接着安装mysql-connector-odbc-noinstall对应的32位或64位版本(严格来说,这并不是安装,而是将第二步安装好的驱动注册到系统中)。注意安装方法:根据文章中的说明进行安装,选择与您操作系统版本不同的版本。
如果您开发的软件或者需要调用MySQL驱动的软件是使用64位驱动的(注意,这里指的是软件调用的是32位还是64位驱动,而不是您当前使用的操作系统)。对于Windows 64位系统,可以同时安装32位和64位的MySQL驱动,控制面板中添加的是64位驱动,而在odbcad32.exe中添加的是32位驱动。在控制面板-管理工具-ODBC数据源中,添加用于64位软件调用的64位MySQL驱动。对于32位驱动,运行c:\Windows\SysWOW64\odbcad32.exe,然后添加驱动,具体请参考文章后面的图示。
以下两个PS是关于上述第二条提到的mysql-connector-odbc-noinstall包的安装:
PS:特别提醒,在安装mysql-connector-odbc-noinstall时,运行install.bat实际上是注册当前目录下BIN文件夹中的DLL。请注意,如果当前安装目录中有中文目录,安装可能会失败。正确的安装方式是将该文件夹复制到C盘的程序目录下,然后运行其中的install.bat进行安装,这样才能正常进行。
另外,在使用过程中发现,对于使用原版安装的64位系统,将mysql-connector-odbc-noinstall复制到Program Files目录下仍无法注册MySQL驱动。解决方法是,对于64位系统,请将mysql-connector-odbc-noinstall64复制到c:\Windows\SysWOW64目录下,并以管理员身份运行install.bat。对于32位系统,请将mysql-connector-odbc-noinstall32复制到c:\Windows\system32目录下,并以管理员身份运行install.bat进行ODBC驱动的注册。
再次PS:
对于部分开发者来说,这里有一点需要先确认,即您的软件是调用32位还是64位的API。这里指的不是您的操作系统,而是您开发的软件编译出的版本是32位还是64位。如果是32位,请安装mysql-connector-odbc-noinstall32位版本,否则安装64位版本(与操作系统无关)。如果您的软件调用的是32位API,则数据源通过运行c:\Windows\SysWOW64\odbcad32.exe进行添加。如果调用的是64位API,则通过控制面板-管理工具-ODBC数据源进行添加。
如果您的软件是调用32位驱动,而您安装了64位驱动,软件在调用时会找到驱动,但会报错:“[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配”。这是因为您的软件使用了odbcad32.exe去查找32位驱动,所以找不到。
再再PS:
如果在安装mysql-connector-odbc-noinstall时出现找不到MSVCR120.DLL的提示,请不要在网上下载该文件并放入system32目录,因为这样也无法解决问题。您可以尝试一下,如果我的系统下载完放在system32目录下,再安装mysql-connector-odbc-noinstall时会直接报内存错误。正确的方法是直接安装第一条提到的vcredist或微软常用运行库合集。
我已经将上述提到的所有文件打包好,并放在我的下载资源中,您可以点击打开链接进行下载。
另外,Windows下常用的运行库可以在360软件管家中找到一个打包好的包,可以直接安装,或者直接在百度上搜索微软常用运行库,这可以解决很多Ghost系统的问题。