【问题标题】:MySQL ODBC Issue: Data source name not found and no default driver specifiedMySQL ODBC 问题:未找到数据源名称且未指定默认驱动程序
【发布时间】:2012-03-12 01:00:36
【问题描述】:

我目前正在尝试运行已获得源代码的经典 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

附加信息:

我在进程监视器中监控,两个结果是:

PATH NOT FOUND(寻找 .asp/web.config 这似乎很奇怪。 缓冲区溢出

两个条目都显示:

用户:NT AUTHORITY\SYSTEM

过程: C:\Windows\SysWOW64\inetsrv\w3wp.exe C:\Windows\SysWOW64\odbcint.dll

我很难过任何人都可以就如何在我描述的上下文中运行它提出建议吗?

【问题讨论】:

标签: mysql asp-classic odbc


【解决方案1】:

现在解决了这个问题。记录在这里,以备他人使用。

这个问题比最初出现的要简单得多。问题是应用程序混合使用了命名和未命名的数据源 (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 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=""

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 2011-11-24
      • 2011-06-02
      • 2018-07-10
      • 2011-07-30
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多