【问题标题】:Cannot connect to mysql from visual studio 2015无法从 Visual Studio 2015 连接到 mysql
【发布时间】:2016-11-09 08:49:00
【问题描述】:

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

我有 Visual Studio 的 1.2.4 msql,它应该是适用于 vs2015 的版本。我已经安装了 mysql 连接器 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>

【问题讨论】:

    标签: mysql visual-studio visual-studio-2015 mysql-connector


    【解决方案1】:

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

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

    2) 创建您的网络项目

    3) 打开 Nuget

    4) 安装实体框架

    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 框架版本的 mysql 连接器的安装位置(我的是 C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4. 5) 并获取 MySql.Data.Entity.EF6.dll(我的版本是 6.9.6,稍后我们更改 web.config 时请记住这一点)

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

    14) 现在需要编辑 Web.config。第一步是用此代码替换实体框架部分(将版本号更改为您当前的版本。请注意,我几周前在网上找到了这个 sn-p 并且没有原始链接。我向您道歉此信息的原始海报。)

    <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) 保存并构建

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

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

    【讨论】:

    • 非常感谢。我已经修复了所有问题并完成了你提到的所有步骤,但我感觉很多其他人需要这个“权威”指南来安装 mysql
    • 很高兴听到您运行它。当我不得不解决这个问题时,我感到非常沮丧,以至于当我阅读你的问题时,我只需要注册一个帐户并回答。编码愉快!
    • 我在 VS2015 中尝试了上述方法,但从未设法让它工作。但是,当我使用 VS2013 并执行相同的操作时,它可以正常工作,然后我在 VS2015 中打开,并且在以后的版本中看起来很好。
    • MySql.Data.Entity.EF6 安装后有什么原因要删除?
    • 在撰写本文时,它安装的版本号低于要求,这就是为什么我要删除它,然后从其他位置添加它(这样我可以获得更高/正确的版本)。我最近没有尝试过这个过程,所以它现在可以在没有这一步的情况下工作。我希望一切都好。
    【解决方案2】:

    它对我有用。 我有 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 版,但我安装了第 4 版和 VS2015 Enterprise final。

    【讨论】:

      【解决方案3】:

      试过这个,它对我不起作用。最终奏效的是确保我有合适的司机。我运行 64 位 Windows 7 计算机。我最终不得不安装 32 位版本的 MySQL ODBC 连接器/驱动程序并使用以下连接字符串“Provider=MSDASQL;Driver={MySQL ODBC 5.3 ANSI Driver};Server=localhost;Database=xxxx;User=xxxx;password= xxxx;选项=3;"这解决了它。在没有进行上述所有更改的情况下在一个新项目上对其进行了测试,并且效果很好。这篇文章对解释这一点非常有帮助:https://support.microsoft.com/en-us/kb/942976。希望这可以节省很多时间

      【讨论】:

        【解决方案4】:

        从此站点安装软件包。 http://dev.mysql.com/downloads/windows/visualstudio/ 在开发版本标签中。

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

        等到完成。

        重新打开 Visual Studio。重新开始!

        祝你好运!

        【讨论】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2017-06-23
            • 2017-02-24
            • 1970-01-01
            • 1970-01-01
            • 2018-06-03
            • 1970-01-01
            • 2015-02-19
            • 2015-12-11
            • 2017-06-17
            相关资源
            最近更新 更多