首页 > 解决方案 > MySQL ODBC 连接(再次)

问题描述

我知道这个问题已经被问过很多次了,但我的变化略有不同,在花了几个小时试图让一行代码工作后,我把头发拉出来了。我有一个 MySQL 数据库,正在尝试使用 ODBC 进行连接。我使用的是 Windows 10 版本 1909。

Line 13: OpenString ="DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;DATABASE=collections;UID=edited_out;PWD=edited_out;"
Line 14: Conn = Server.Createobject("ADODB.Connection")
Line 15: Conn.open = OpenString

引用的代码在我的带有 Microsoft .NET Framework 版本:4.0.30319 的主 PC 上运行良好;ASP.NET 版本:4.8.4075.0 和 DRIVER={MySQL ODBC 5.3 ANSI 驱动程序}。在具有几乎相同配置的测试 PC 上,除了驱动程序名称外,完全相同的代码会失败。(Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.8.4075.0 和 DRIVER={MySQL ODBC 8.0 ANSI Driver} 或就此而言,DRIVER={MySQL ODBC 8.0 Unicode Driver} - 两者都已安装。)请见附图作为证据。我得到了众所周知且令人沮丧的“未找到数据源名称且未指定默认驱动程序”。代码片段和驱动程序

我意识到这个错误几乎总是由于驱动程序名称错误。但是,我检查并重新检查了我的语法和驱动程序安装。我知道我的 ODBC 安装没有明显的问题,因为我安装 LibreOffice 纯粹是为了测试,并且能够使用此处显示的相同驱动程序在同一台 PC 上通过 ODBC 在几秒钟内连接到同一数据库。ODBC 8.0 版驱动程序有什么不同或特别麻烦吗?我是否需要尝试将此降级到 5.3?

谢谢你的帮助。

标签: mysqlasp.netvb.netodbc

解决方案


修复:如果使用 64 位,请为您的站点禁用 32 位应用程序!

(回答我自己的问题,希望它对某人有所帮助。)我想通了。连接字符串是一条红鲱鱼。进一步的侦探工作使我找到了一篇建议检查 IIS 中的应用程序池的帖子。如果您有任何 32 位应用程序,建议在高级设置下为您的站点启用 32 位应用程序,这是相当明显的。

但是,我的应用程序是 64 位的,我注意到在我的工作 PC 上禁用了此选项。在另一台 PC 上禁用它可以恢复连接:显然 Windows 默认使用不存在的 32 位驱动程序,并在失败时显示不明确的错误消息。软件作者似乎为用户挖掘了很多这样的漏洞......


推荐阅读