连接 MySQL 时出现错误“未找到数据源名称且未指定默认驱动程序”

问题描述 投票:0回答:7

我正在尝试使用 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()
),返回以下错误:

错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 数据源名称不正确 找到并且没有指定默认驱动程序

这是为什么?我该如何防止这种情况发生?

此外,出现此错误的可能原因是什么?如果登录凭据不正确,会显示此错误吗?

asp.net mysql
7个回答
11
投票

这个问题是因为我正在安装

64-bit
MySQL ODBC 5.1 驱动程序而引起的,因为我的操作系统运行的是 64 位。

因为我几天来一直在尝试解决这个问题,所以最终我删除了驱动程序,并安装了

32-bit
MySQL ODBC 5.1 驱动程序。

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


5
投票

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

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

您将在此处查看是否安装了 MySQL 驱动程序,如果已安装,则其正确名称。

此链接将带您前往 MySQL 驱动程序下载站点。


3
投票

您可能需要检查驱动程序是否已安装。 这是获取列表的指南

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

您应该能够下载驱动程序这里


3
投票

我的“找不到数据源名称”的解决方案(使用5.2.4 ODBC ansi驱动程序,Win7 64位):

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

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

仅此而已。


2
投票

我的问题是我的代码

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


0
投票

我正在将 java 7 与 ODBC 连接,这对我有用

String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String connectionString = "jdbc:odbc:\"DRIVER={MySQL ODBC 8.0 Unicode Driver};DSN=refde;Trusted_Connection=Yes;";

0
投票

我正在 Visual Studio 2022 中将 REST API 从 php 迁移到 C#/Dot net core,并且遇到了与 Visual Studio 2019 中存在但已在 Visual Studio 2022 中消失的 MySQL DB 选项类似的问题,使得使用实体变得困难框架。
我在安装 MySQL ODBC Connector v9 后使用了 ODBC 数据源选项,因为其他选项(MySQL for VS 等)在 VS 2022 中不起作用。

Driver={MySQL ODBC 9.0 Unicode Driver};server=127.0.0.1;database=mydatabase;uid=userid

我希望这对 Visual Studio 2022+ 的未来用户有用

© www.soinside.com 2019 - 2024. All rights reserved.