2012-02-21 52 views
1

我目前正在嘗試運行一個經典的ASP應用程序,我已經給出了源代碼。我想在我的64位Windows 7開發機器上安裝,並且遇到與基於ODBC的數據連接到MySQL實例的問題。MySQL的ODBC問題:數據源名稱未找到,沒有指定默認驅動程序

我看到的錯誤:

Microsoft OLE DB Provider for ODBC Drivers error '80004005' 

[Microsoft][ODBC Driver Manager] Data source name not found 
and no default driver specified 

/includes/<File Name>.asp, line 100 

我已經試過:

  • 的連接是DSN的。
  • 該應用程序在具有本地系統權限的IIS應用程序池下運行。可以看到w3wp.exe在進程監視器中的NT AUTHORITY/SYSTEM下運行。
  • 應用程序在允許運行32位應用程序的IIS應用程序池下運行。
  • 已嘗試Connector/ODBC 5.1.10 64位版本只從http://dev.mysql.com安裝(此時沒有驅動程序列在C:\ Windows \ SysWOW64 \ odbcad32.exe下,但是在C:\ Windows \ system32 \ odbcad32下。 exe文件)
  • 已嘗試使用連接器/ ODBC 5.1.10 32位版本只安裝從http://dev.mysql.com(此時沒有驅動程序列在C:\ Windows \ system32 \ odbcad32.exe下,但在C:\ Windows \ SysWOW64 \ odbcad32.exe)
  • 已嘗試使用Connector/ODBC 5.1.10安裝的32位和64位版本。
  • 已驗證的驅動程序名稱未拼錯。以及來自這裏的其他支票http://support.microsoft.com/kb/306345

    驅動= {MySQL的ODBC 5.1驅動};服務器=本地主機;數據庫=數據庫名;用戶=根;密碼=密碼;選項= 3

其它信息:

我監測在過程監控,和兩個結果:

找不到路徑(尋找的.asp/web.config中似乎很奇怪 緩存溢出

這兩個條目。顯示:

用戶:NT AUTHORITY \ SYSTEM

過程: C:\ WINDOWS \ Syswow64資料\ INETSRV \ w3wp.exe的 C:\ WINDOWS \ Syswow64資料\ ODBCINT.DLL

我難倒任何人都可以就我如何在我描述的環境中運行這個問題提出建議?

+0

是否使用ADODB來處理連接對象?並且您是否嘗試了MSI安裝程序:http://dev.mysql.com/downloads/connector/odbc/5.1.html – HeavenCore 2012-02-22 11:42:16

回答

0

現在解決了這個問題。在這裏錄製這種情況以供其他人使用。

這個問題比第一次出現簡單得多。問題是應用程序混合使用了命名和未命名的數據源(DSN/DSN-Less)。

這不是明顯對我來說,任何命名連接使用,直到我建立了在Visual Studio中調試應用程序。這裏是一個粗略的指南調試在Visual Studio中的應用程序(除了我使用基於HTTP的網站,而不是文件系統):

http://www.codeproject.com/Articles/28792/Debugging-Classic-ASP-VBScript-in-Visual-Studio-20

繼創建所需的DSN,有一些進一步的異常被拋出關於默認數據庫列中的值。這是由於可以在my.ini文件中更改的MySQL設置。

http://bugs.mysql.com/bug.php?id=14306

C:\ Program Files文件(x86)的\的MySQL \ MySQL服務器5.5 \ my.ini的

# Set the SQL mode to strict 
# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
sql-mode="" 
0

我發現這從Windows工作MySQL作爲DSN-less連接。技巧是ELIMINATE端口規格在服務器地址的末尾。

"DRIVER={MySQL ODBC 5.3 UNICODE Driver}; Server=**;Database=**;User=**;Password=**; OPTION=3" 

Note: Server string is the internet address of the server, BUT NO PORT SPECIFIED - ie, NO ":3306" on the end

相關問題