1,问题的起源
某次编辑一个asp文件,其中访问mysql数据库的连接字符串如下:
"driver={mysql odbc 3.51 driver};server=localhost;uid=root;pwd=sa;database=server;Stmt=Set Names 'GBK'"
在运行时。
Microsoft OLE DB Provider for ODBC Drivers '80004005' [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 \mysqlconn.asp, line 30
看来系统不存在mysql odbc 3.51的驱动,想起来我电脑安装了mysql-connector-odbc-5.1.6-win32.msi,那么驱动应该是5.1.6?
改为"driver={mysql odbc 5.1.6 driver};server=localhost;uid=root;pwd=sa;database=server;Stmt=Set Names 'GBK'"
故障依旧。
那可能是驱动版本有误。既然安装了mysql-connector-odbc-5.1.6-win32.msi,在windows的ODBC数据源管理界面总能找到版本号吧。
于是在windows控制面板上找到ODBC配置图标,打开却发现没有mySQL的驱动。
2,问题分析
于是在网上查找原因,其中以下文章指出了问题所在。
https://jingyan.baidu.com/article/5d368d1ecef5cb3f60c057de.html
该文特别提到:
一定要到这个路径下打开数据源c:\windows\syswow64\odbcad32.exe,控制面板里打开的是64位的ODBC管理器,建立的也是调用64为驱动的数据源,32为的应用将无法使用64为的数据源。
我的机器是win64的系统,显然应该使用64为ODBC管理程序打开。
3,问题解决
于是运行c:\windows\syswow64\odbcad32.exe,终于出现mySQL ODBC驱动,且版本为5.1
修改asp文件的连接字符串为
"driver={mysql odbc 5.1 driver};server=localhost;uid=root;pwd=sa;database=server;Stmt=Set Names 'GBK'"
再次运行程序,正确无误。问题解决。