MySQL ODBC问题:未找到数据源名称且未指定默认驱动程序

时间:2012-02-21 17:34:27

标签: mysql asp-classic odbc

我正在尝试运行一个经典的ASP应用程序,我已经获得了源代码。我想在我的64位Windows 7开发机器上进行设置,并且遇到基于ODBC的数据连接到MySQL实例的问题。

我看到了错误:

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下运行。
  • 应用程序在IIS应用程序池下运行,允许运行32位应用程序。
  • 尝试过只从http://dev.mysql.com安装的Connector / ODBC 5.1.10 64位版本(此时C:\ Windows \ SysWOW64 \ odbcad32.exe下没有列出驱动程序,但是在C:\ Windows \下system32 \ odbcad32.exe)
  • 尝试使用仅从http://dev.mysql.com安装的Connector / ODBC 5.1.10 32位版本(此时C:\ Windows \ system32 \ odbcad32.exe下没有列出驱动程序,但是在C:\ Windows \下SysWOW64 \ odbcad32.exe)
  • 尝试过安装了Connector / ODBC 5.1.10 32位和64位版本。
  • 已验证的驱动程序名称未拼写错误。与此处http://support.microsoft.com/kb/306345的其他检查一起。

    Driver = {MySQL ODBC 5.1 Driver}; Server = localhost; Database = DBName; User = root; Password = Password; Option = 3

其他信息:

我在进程监视器中进行监视,结果如下:

路径未找到(寻找.asp / web.config这看起来很奇怪。 BUFFER OVERFLOW

两个条目都显示:

用户:NT AUTHORITY \ SYSTEM

过程: C:\ WINDOWS \ Syswow64资料\ INETSRV \程序w3wp.exe C:\ Windows \ SysWOW64 \ odbcint.dll

我很困难,任何人都可以就我如何在我描述的环境中运行这个问题提出建议吗?

2 个答案:

答案 0 :(得分:0)

现在解决了这个问题。记录此处以防其他人使用。

这个问题比最初出现的问题简单得多。问题是该应用程序使用了命名和未命名数据源的混合(DSN / DSN-Less)。

在我设置Visual Studio中的调试应用程序之前,使用任何已命名的连接并不明显。以下是在visual studio中调试应用程序的粗略指南(除非我使用基于HTTP的网站,而不是文件系统):

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

在创建所需的DSN之后,还会针对数据库列中的默认值抛出一些其他异常。这是因为MySQL设置可以在my.ini文件中更改。

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

C:\ Program Files(x86)\ MySQL \ MySQL Server 5.5 \ my.ini

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

答案 1 :(得分:0)

我发现这可以从Windows到MySQL作为DSN-less连接工作。诀窍是 ELIMINATE 服务器地址末尾的端口规范。

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

注意:服务器字符串是服务器的互联网地址,但没有端口   指定 - 即,否#&#34;:3306&#34;最后