无法从visual studio 2015连接到mysql

时间:2015-08-16 16:05:24

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

所以我已经花了大约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实体数据模型?

我一直在愚蠢enter image description here 图像,我真的完全不知道接下来该做什么。我只是想编码,但每次我开始做某事我都会浪费时间在工具上工作。我是否真的必须在记事本中编码,以便我确定某些东西不起作用是我的错?

这是我的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>

5 个答案:

答案 0 :(得分:13)

为了让VS 2015连接到MySql,您需要使用更高版本的MySql库。虽然这似乎是一个非常简单的答案,但说实话,我遇到了一些问题。考虑到这一点,我将写出一个一直为我工作的过程,只要让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。第一步是用这段代码替换实体框架部分(将版本号更改为您当前的版本。请注意,我在几周前在网上找到了这个片段,并且没有原始链接。我向原文道歉这些信息的海报。)

<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安装目录中抓取它对我来说每次都很好。

答案 1 :(得分:3)

它对我有用。 我有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企业版的第4版。

答案 2 :(得分:0)

试过这个并不适合我。最终起作用的是确保我拥有合适的驾驶员。我运行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。希望这可以节省很多时间

答案 3 :(得分:0)

从此站点安装软件包。 “开发发布”标签中的http://dev.mysql.com/downloads/windows/visualstudio/

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

等到完成。

重新打开Visual Studio。重新回到游戏中!

祝你好运!

答案 4 :(得分:0)

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

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

  3. 重新编译项目当创建de ADO.Net Object时,显示了着名的MySql数据提供程序! 显示有关实体框架版本的警告,我只是单击了下一步并且工作了![在此处输入图像说明] [1]