问题描述:在windows下安装mysql驱动用mysql-connector-net安装,但安装完后有部分机器在控制面板-管理工具-数据源里-添加MYSQL ODBC驱动,找不到对应的mysql驱动选项。
测试环境:windows7-64位
主要的原因:找不到驱动的原因是因为驱动装了,但系统没有认到,需要注册一下。
解决办法:(把文章看完再装,以下说的文件我都要打包好了,下面解释一下打的包)
一、先安装vcredist包里装对应版本的,里面有32和64版本。这个windows C++的运行库。只是个很小的运行环境dll库很快装完,现在的系统大部分都是GHOST的会有些文件精简,所以一般搞开发电脑都会要安装这个包。
二、正常安装mysql-connector-net的驱动,如果你是先安装了这个驱动,才发现在控制面板里没有的话。这个步骤就可以不用再做了,只要保证先再安装了这个驱动再来操作接下来的第三步就行。
三、接着安装mysql-connector-odbc-noinstall对应32或64位版本(严格来讲都不叫安装,就是把前面第二步装好的驱动注册到系统里面)PS:注意安装的方法:后面有说明安装方法,对应版本不是你操作系统的版本。
四、如果你开发的或都者你要调用mysql驱动的软件是调用64位驱动的(注意是软件调用的是32位还是64位驱动的(不是指你现在所使用的操作系统)。windows64位的系统,可以同时装32位和64位的mysql驱动存在,在控制面板里添加的是64位驱动和odbcad32.exe里添加的32位驱动):控制面板-管理工具-ODCB数据源,添加用于于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 file还是注册不到mysql驱动。办法是64位系统请拷mysql-connector-odbc-noinstall64到c:\Windows\SysWOW64下以管理员身份执行install.bat。如果是32位的系统把mysql-connector-odbc-noinstall32拷到c:\Windows\system32下以管理员身份运行install.bat进行obdc驱动的注册。
再PS:
对于部分开发者来说,这里有一点要先确认,你的软件是调用32位的API还是64位的,我说的不是你的操作系统,是你开发的软件编译出来的版本是32还是64位的。
如果是32位就安装mysql-connector-odbc-noinstall32位的版本,否则就是64位的。(和你的操作系统无关)
如果你的软件调用的是32位API,数据源是通过,运行:c:\Windows\SysWOW64\odbcad32.exe里面添加的。
如果调用64位的,是通过:控制面板-管理工具-ODCB数据源,添加的数据源。
如果你的软件是调用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系统的问题。
前面说的三条都装完了之后,这是32位API调用:c:\Windows\SysWOW64\odbcad32.exe添加数据源的方法。