无法从 visual studio 2015 连接到 mysql

Cannot connect to mysql from visual studio 2015

所以我已经花了大约 2 天时间尝试解决这个问题。我已经成功地在我的工作场所电脑上修复了这个问题,但无法让它在我的家用电脑上运行。我已经阅读了大约十二篇 SO 文章和 oracle 论坛文章等等,但它仍然不起作用。

我有 visual studio 的 1.2.4 msql,它应该是适用于 vs2015 的版本。我已经安装了 mysql connector 6.8.6 并且首先尝试通过 nuget 添加 mysql 到我的项目但是在找不到 6.8.6 版本之后(有 6.8.3 和 6.9.7对于一个包,然后又是另一个包...)我参考了我的 C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.6\Assemblies\v4.5 并获取了 4 个文件在那里,并把它们复制到整个 fkin 计算机上。我把它贴得到处都是。 vs2013 私有程序集,我什至没有引用的包文件夹,我认为是一些 vs2015 文件夹。我 运行 搜索 Mysql.Data 并将这些文件粘贴到结果出现的每个文件夹中。我已经重建解决方案大约100-200次并且至少哭了20分钟。

我需要做什么才能生成新的 ADO.Net 实体数据模型?

我一直觉得这很愚蠢 图像,我真的完全不知道下一步该做什么。我只想编写代码,但每次我开始做某事时,我都会在无法正常工作的工具上浪费几天时间。我真的必须在记事本中编写代码,以便我确定出现问题是我的错吗?

这是我的 app.Config 文件。我的项目中没有其他任何东西。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v12.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.8.6.0" newVersion="6.8.6.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <connectionStrings>
    <add name="KPlusConnectionString" connectionString="server=dito.ninja;user id=xxx;password=xxx;database=xxx" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
</configuration>

对我有用。 我有 Visual Studio 2015,并且刚刚安装了最新版本的连接器: http://dev.mysql.com/downloads/windows/visualstudio/

仔细阅读: http://dev.mysql.com/doc/relnotes/mysql-for-visual-studio/en/visual-studio-news-1-2-4.html

他们提到 "Microsoft ASP.NET MVC" 的那个版本可能是个问题。 错误的是他们说 VS2015 附带版本 5,但我安装了 VS2015 Enterprise final 的版本 4。

为了让 VS 2015 连接到 MySql,您需要使用更高版本的 MySql 库。虽然这看起来是一个非常简单的答案,但老实说,我 运行 遇到了几个问题。考虑到这一点,我将写出在让 EF 使用 MySql 和 VS2015 时一直对我有用的 1 个过程。因此,事不宜迟,以下是我为使其正常工作而采取的步骤。

1) 确保 MySql 连接器安装已更新

2) 创建您的网络项目

3) 打开 Nuget

4) 安装Entity Framework

5) 搜索 MySql

6) 安装MySql.Data

7) 安装MySql.Data.Entity

8) 安装MySql.Data.Entities

9) 安装MySql.Web

10) 转到项目的引用并删除 MySql.Data.Entity.EF6

11) 检查 MySql.Data 和 MySql.Web 库的版本。如果低于 6.9.6 也删除它们

12) 通过浏览到适用于您的 .NET Framework 版本的 mysql 连接器的安装位置来添加新引用(我的是 C:\Program Files (x86)\MySQL\Connector。 NET 6.9\Assemblies\v4.5) 并获取 MySql.Data.Entity.EF6.dll(我的版本是 6.9.6,稍后我们更改 web.config 时请记住这一点)

13) 如果其他库也是旧版本,请通过浏览到解决方案中的包文件夹并从它们各自的文件夹中抓取文件来添加对它们的引用。我通常不必这样做。

14) 现在需要编辑 Web.config。第一步是用这段代码替换 entity framework 部分(将版本号更改为您当前的版本。请注意,我几周前在网上找到了这段代码,但没有原始的 link. 向该信息的原发布者致歉。)

<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>

15) 确保您的 DbProviderFactories 部分匹配

<DbProviderFactories>
  <remove invariant="MySql.Data.MySqlClient" />
  <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>

16) 保存并构建

我不确定实际需要执行多少这些步骤,但在最终完成之后,我不得不真正完成一些工作,没有时间进一步缩小范围。希望这能让你感动。

P.S。如果在所有这些之后您通过向导,它就在它向您显示数据库中的表以从中创建实体之前就消失了,那么它可能是我在此过程中遇到的三个问题之一 运行。无法联系数据库服务器。用户对数据库没有所需的权限。 MySql.Data.Entity.EF6 的错误版本被添加为参考或 web.config 中的版本号错误。如果我从解决方案的 packages 目录中获取此文件,我经常 运行 进入这个 aborted-wizard-with-no-error-message 问题。从 MySql 安装目录中获取它对我来说每次都很好。

试过了,但对我不起作用。最终起作用的是确保我拥有正确的 driver。我运行一台64位Windows7电脑。我最终不得不安装 32 位版本的 MySQL ODBC connector/driver 并使用以下连接字符串 "Provider=MSDASQL; Driver={MySQL ODBC 5.3 ANSI Driver}; Server=localhost; Database=xxxx; User=xxxx; password=xxxx; Option=3;" 并解决了它。在没有进行上述所有更改的情况下在新项目上对其进行了测试,并且运行良好。 post 对解释这一点非常有帮助:https://support.microsoft.com/en-us/kb/942976。希望这可以节省很多时间

从该站点安装包。 http://dev.mysql.com/downloads/windows/visualstudio/ 在开发版本选项卡中。

我停止了Visual Studio..我安装了。等待..接缝永远。 Visual studio 将在后台 运行。

等待完成。

重新打开 Visual Studio。重回舞台!

祝你好运!

  1. 对于 VS2015,我删除了所有安装的版本并通过 MySql 安装程序 - 社区。我选择了自定义安装并选择了 MySQL 要安装的连接器:1. MySql for Visual Studio 2) MySQl ConnectorNet.

  2. 我添加了引用:MySql.Data y MySql.Data.Entity.EF5 都在 C:\程序文件 (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\

  3. 重新编译项目并在创建 ADO.Net 对象时显示著名的 MySql 数据提供者! 显示了有关实体框架版本的警告,我只是单击下一步并成功了![在此处输入图片描述][1]