【问题标题】:Connecting to MySQL causes error "Data source name not found and no default driver specified"连接到 MySQL 导致错误“找不到数据源名称且未指定默认驱动程序”
【发布时间】:2011-11-23 09:45:58
【问题描述】:

我正在尝试使用我的 ASP.NET Web 窗体应用程序连接到 MySQL 数据库。我正在进行一项测试,将 MySQL 数据库中的数据绑定到 GridView

这是我的代码:

Dim strMySQLConn As String = "DRIVER={MySQL ODBC 5.1 Driver};Database=database_name;Server=ip_address;UID=username;PWD=password;"
    Dim MySQLConn As New OdbcConnection(strMySQLConn)

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then

            Dim ds As DataSet = New DataSet()
            Dim cmdMySQL As New OdbcDataAdapter("SELECT * FROM categorymaster", MySQLConn)

            MySQLConn.Open()

            cmdMySQL.Fill(ds, "prjs")

            gv.DataSource = ds.Tables("prjs").DefaultView
            gv.DataBind()


            MySQLConn.Close()

        End If
    End Sub

但是,当建立 MySQL 数据库连接时(MySQLConn.Open()),返回以下错误:

ERROR [IM002] [Microsoft][ODBC Driver Manager] 数据源名称不正确 已找到但未指定默认驱动程序

为什么会这样?如何防止它发生?

另外,看到此错误的可能原因是什么?如果登录凭据不正确,是否会显示此错误?

【问题讨论】:

  • 类似问题看看这个我帮你stackoverflow.com/questions/3294024/…
  • @karthi - 我已将我的 conn 字符串更改为 DRIVER={MySQL ODBC 5.1 Driver};,但我仍然遇到同样的错误
  • 驱动安装了吗?如果 ODBC 也无法加载驱动程序,则会出现此错误。
  • @Romain "MySQL ODBC 5.1 Driver" 已安装,但我仍然收到此错误
  • @Curt ASP.net 必须能够加载它。如果您的机器是 x86_64,您可能安装了 32 位或 64 位版本。您需要安装与您的 ASP 服务器具有相同架构的服务器。

标签: asp.net mysql


【解决方案1】:

问题是因为我安装了64-bit MySQL ODBC 5.1 驱动程序,因为我的操作系统运行的是 64 位。

因为我这几天一直在尝试解决这个问题,所以我删除了驱动程序,并安装了32-bit MySQL ODBC 5.1 驱动程序。

这已修复错误,我现在正在成功连接。

【讨论】:

  • 您是如何在 ODBC 管理器控制台中看到 32 位驱动程序的?我的 64 位驱动程序有问题,根据您的回复,在 Win 7 64 位上安装了 32 位。但我无法在 ODBC 管理器中看到驱动程序。
【解决方案2】:

Curt 是对的。我遇到了这个确切的问题。因为我的工作站上安装了 MySQL Workbench,所以我假设我已经安装了驱动程序;没有。 安装驱动程序并通过正确的版本调用它,并添加命令“Provider=MSDASQL;”由于我使用的是 64 位系统,因此连接字符串为我解决了这个问题。 如果您想查看 Windows 系统上安装的所有 ODBC 驱动程序,请打开注册表编辑器以:

\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC 驱动程序。

在那里你会发现是否安装了 MySQL 驱动程序,如果安装了,它的正确名称。

This Link 将带您到 MySQL 驱动程序下载站点。

【讨论】:

  • 欢迎来到 Stack Overflow,@Russell S 这并不是 OP 问题的真正答案(原始海报)。你应该把它写成评论。
  • 必须有 50 声望才能发表评论。现在我很消极。哦,便便:0)
  • 我已经改写了答案。感谢您的意见。
【解决方案3】:

您可能需要检查驱动程序是否已安装。 Here is a guide to getting the list

检查您是否安装了任何版本,并确保您的版本与连接字符串中的版本匹配。

您应该可以下载驱动程序Here

【讨论】:

  • 干杯,我现在已经安装了""MySQL ODBC 5.1 Driver",但我仍然收到这个错误
  • @Curt,您确定可以访问数据库吗?您是否尝试过使用其他工具访问?例如this 或使用UDL File
  • 登录凭据正确。这已经通过使用 MySQL Administrator 进行连接测试
【解决方案4】:

我的“找不到数据源名称”的解决方案(带5.2.4 ODBC ansi驱动,Win7 64bit):

1) 安装 64 位 ODBC MySQL 驱动程序 - 它应该在 ODBC 驱动程序中可见。

2) 安装 32 位 ODBC MySQL 驱动程序 - 它在 ODBC 驱动程序中不可见,但在 Program Files x86 中创建“影子”安装。

就是这样。

【讨论】:

  • 这是为我做的。我先安装了 32 位的,但它不起作用(因为我知道 64 位不起作用)。但是在安装两者之后,它解决了我的问题。
【解决方案5】:

我的问题是我的代码有问题

DRIVER={MySQL ODBC 5.3 Driver},但是当我通过 Windows 搜索引擎查找 ODBC 时,我发现了一个名为 ODBC Data Sources 的应用程序,在该应用程序的 Drivers 下 选项卡我发现驱动器的名称是 {MySQL ODBC 5.3 ANSI Driver}。这解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2016-07-08
    • 2014-12-05
    • 1970-01-01
    相关资源
    最近更新 更多