实体框架到 MySql 连接到数据库失败 [重复]

     2023-03-31     259

关键词:

【中文标题】实体框架到 MySql 连接到数据库失败 [重复]【英文标题】:Entity Framework to MySql connection failed to database [duplicate] 【发布时间】:2018-10-13 22:13:00 【问题描述】:

使用 Entity Framework 6 连接到 mysql 数据库时出现以下错误

访问数据库时出错。这通常意味着 与数据库的连接失败。检查连接字符串是 正确并且正在使用适当的 DbContext 构造函数 指定它或在应用程序的配置文件中找到它。

这是我的代码:

public class TestDbContext : DbContext

    public TestDbContext()
       : base("name="mysqldb")
    

    
    public DbSet<holidays> holidays  get; set; 



<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />   </configSections>

<connectionStrings>
<add name="mysqldb" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;userid=root;password=admin;database=bobdata;/> </connectionStrings>

<entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>

在给定消息下方的内部异常中

"按方法尝试 'MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(System.Data.Common.DbConnection)' 访问方法 'MySql.Data.MySqlClient.MySqlConnection.get_Settings()' 失败。"

【问题讨论】:

【参考方案1】:

您似乎正在使用 MySql.Data.Entity 6.10.7。我猜你也在使用 MySql.Data 8.0.11。

这两个库不兼容。对于 v8.x,Oracle renamed the package 到 MySql.Data.EntityFramework。你需要卸载MySql.Data.Entity并安装MySql.Data.EntityFramework

【讨论】:

谢谢,这被阻止了几个月,不得不使用旧版本的 MySql.Data 和 MySql.Data.Entity。 太棒了,伙计 完美解决方案!那是错误的软件包,现在可以使用了,谢谢:-)【参考方案2】:

我认为问题是因为您在连接字符串中使用了用户 ID 而不是 UID,请将用户 ID 更改为 UID

【讨论】:

感谢快速重播。我也尝试过使用 UID,但它不起作用。【参考方案3】:

根据您提供的信息(还有其他可能导致此问题的原因)并假设凭据正确,值得尝试以下操作:

TestDbContext 类中:

public class TestDbContext : DbContext

    public TestDbContext()
       : base("mysqldb")
      
    

    public static TestDbContext Create()
    
        return new TestDbContext();
    

    public DbSet<holidays> holidays  get; set; 

在 web.config 中:

<add name="mysqldb" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;database=bobdata;uid=root;password=admin;" />

基于 cmets 的更新:

如果您仍然收到错误,我建议您开始一个新项目,只是为了建立一个成功的数据库连接并从那里逐步修改您的连接字符串。然后,您可以将此项目中已建立的设置复制到您现有的项目中。确保 db 上下文中的连接字符串名称与 web.config 中的相同,并以“标准”连接字符串开头,如下所示:

public class TestDbContext : DbContext

    public TestDbContext() : base("ThisIsMyConnectionStringName")
      
    

    public static TestDbContext Create()
    
        return new TestDbContext();
    

    public DbSet<holidays> holidays  get; set; 


  <connectionStrings>
    <add name="ThisIsMyConnectionStringName" connectionString="Data Source=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\My-Database-Name.mdf" providerName="System.Data.SqlClient" />
  </connectionStrings>

使用此设置,数据库文件(名为 My-Database-Name.mdf)将驻留在 App_Data 文件夹中。然后搜索那里的连接字符串设置(有大量资源)并逐步将内容更改为您想要的内容。这样一来,您就可以从实际拥有数据库和连接的地方作为起点,而不是试图从可能由多种原因引起的错误消息中向后工作。

【讨论】:

进行上述更改后,出现同样的错误“访问数据库时发生错误。” 我需要为 Visual Studio 安装 MySQL @Dhiraj Mane 用建议更新了答案

实体框架不断尝试连接到旧的 ADO.NET 提供程序,即使它已被更改

...布时间】:2018-03-0814:21:28【问题描述】:我将MySQL项目的数据库连接更改为从MySQL定位到SQLServer。但是,当尝试在SQLServer中针对数据库运行Update 查看详情

我无法连接到 MySQL 数据库 [重复]

】我无法连接到MySQL数据库[重复]【英文标题】:IamunabletoconnecttoMySQLdatabase[duplicate]【发布时间】:2017-11-2120:13:38【问题描述】:我已将JDBC连接器添加到我的类路径,但我仍然收到“java.lang.ClassNotFoundException:com.mysql.jdbc.Driver”错... 查看详情

无法从java连接到mysql [重复]

....18,我必须在周二/周三之前提交程序。我无法连接到MySQL数据库。我认为用户创建存在一些问题。从5台不同的PC输入的标记应转到不同PC中的MySQL数据库这是我 查看详情

实体框架 - Linq 中的数据库视图或连接到实体

】实体框架-Linq中的数据库视图或连接到实体【英文标题】:EntityFramework-DatabaseVieworJoinsinLinqtoEntities【发布时间】:2011-02-2815:10:56【问题描述】:我有一个包含许多查找表的数据库表:OrderTypeShippingTypeetc.我的订单表引用了以下每... 查看详情

远程连接到 MySQL 数据库 [重复]

】远程连接到MySQL数据库[重复]【英文标题】:ConnecttoMySQLDatabaseRemotely[duplicate]【发布时间】:2013-08-1017:01:41【问题描述】:如果我在一个站点上托管了一个MySQL数据库,并且我想从另一个站点连接到它,有没有办法做到这一点?... 查看详情

尝试在 android 上运行 ionic 项目时连接到 mysql 数据库失败

】尝试在android上运行ionic项目时连接到mysql数据库失败【英文标题】:Connectiontomysqldatabasefailedwhiletryingtorunionicprojectonandroid【发布时间】:2020-06-2022:48:13【问题描述】:我正在尝试使用nodejs作为服务器来运行ionic应用程序以连接到... 查看详情

从 Servlet 连接到 MySQL 不起作用 [重复]

...序,这样我就可以将课堂上的笔记发布到服务器上。我在数据库端使用JDBC和MySQL,在应用程序端使用JSP/Servlet。我编写了一个与我的servlet代码非常相似的独立Java应用程序 查看详情

无法使用java连接到mysql数据库[重复]

】无法使用java连接到mysql数据库[重复]【英文标题】:failedtoconnecttomysqldatabaseusingjava[duplicate]【发布时间】:2019-08-2003:14:41【问题描述】:我正在尝试连接到MySQL数据库并在我的java代码中使用sql语句获取一些数据。但我无法连接... 查看详情

无法从 MYSQL Workbench 6.3 CE 连接到 MS SQL 服务器 [重复]

...问题描述】:我无法从MYSQLWorkbench6.3CE应用程序连接到MSSQL数据库。它抛出以下错误操作失败:在“等待初始通信数据包”时丢失与MySQL服务器的连接,系统错误:1 查看详情

尝试通过 SIngleton 模式连接到 MySQL 数据库 [重复]

】尝试通过SIngleton模式连接到MySQL数据库[重复]【英文标题】:TryingtoconnecttoMySQLdatabasethroughSIngletonpattern[duplicate]【发布时间】:2019-05-0802:45:49【问题描述】:正如标题所说,我正在尝试通过单例设计模式连接到我的数据库,但它... 查看详情

由于登录失败错误,无法连接到 SQL Server 数据库 [重复]

】由于登录失败错误,无法连接到SQLServer数据库[重复]【英文标题】:UnabletoconnecttoSQLServerdatabaseduetologinfailederror[duplicate]【发布时间】:2021-11-2004:32:27【问题描述】:我创建了一个简单的java项目,我在其中尝试连接到SQLServer2019... 查看详情

Java 连接到 SQL Server 数据库:用户“sa”登录失败 [重复]

】Java连接到SQLServer数据库:用户“sa”登录失败[重复]【英文标题】:JavaconnectiontoaSQLServerDatabase:Loginfailedforuser\'sa\'[duplicate]【发布时间】:2013-06-0122:22:52【问题描述】:我正在尝试连接到使用SQLServer2012创建的数据库,但我不断... 查看详情

无法将实体框架与 MySQL 一起使用

...2818:32:36【问题描述】:当我尝试使用实体框架连接到MySQL数据库(使用“数据库中的CodeFirst”选项)时,在“选择您的数据连接”按下一步后,实体数据模型向导将关闭并在服务器资源管理器中,我看到数据连接也关闭了。我已... 查看详情

如何连接到本地 MySQL 数据库 [重复]

】如何连接到本地MySQL数据库[重复]【英文标题】:HowtoconnecttoalocalhostMySQLdatabase[duplicate]【发布时间】:2015-07-0908:12:28【问题描述】:我刚刚在我的电脑上下载了MySQLInstaller并安装了MySQLServer和Workbench。我想问的是:如何从另一台... 查看详情

将 Grafana 连接到 MySQL 显示查询失败,为啥?

...MySQL不在容器中。我创建了具有所有权限的用户,创建了数据库和表。从127. 查看详情

JavaFX不会连接到MYSQL [重复]

...间】:2021-04-0203:33:27【问题描述】:我有数据存储在mysql数据库中,我想把它拉到我使用javafx的程序中,但它不起作用。如果我使用一些不使用javafx的基本类提取数据,它就可以正常工作。但是,使用javafx时,我收到以下错误消... 查看详情

通过python连接到MySQL db [重复]

...】:2013-12-0913:13:57【问题描述】:我正在尝试连接到mysql数据库。我已经安装了mysqldb包,但它仍然显示“ImportError:Nomodulenamed\'MySQLdb\'whenIimport.为什么?【问题讨论】:我使用的是ubuntu13.04,抱歉我是 查看详情

连接到服务器的mysql错误[重复]

...iontoMySQLserverat\'readinginitialcommunicationpacket\',systemerror:2连接数据库时出错。如果我使用localhost一切正常。但是当我使用如 查看详情