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'"
再次運行程序,正確無誤。問題解決。