无法从visual studio 2015连接到mysql
所以我已经花了大约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:\程序文件(x86)\MySQL\MySQL Connector Net 6.8.6\Assembly\v4.5,并将4个文件复制到整个fkin计算机上。我把它贴得到处都是。vs2013私有程序集,我的packages文件夹,我甚至没有提到过它,我想是vs2015文件夹。我对Mysql.Data进行了搜索,并将这些文件粘贴到了结果显示的每个文件夹中。我已经重建了大约100-200次解决方案,并且哭了至少20分钟 要生成新的ADO.Net实体数据模型,我必须做什么 我一直觉得这很愚蠢 我完全不知道下一步该怎么办。我只是想编写代码,但每次我开始做一些事情时,我都会在不起作用的工具上浪费几天时间。我真的必须在记事本中编写代码,这样我才能确定某些东西不起作用是我的错吗 这是我的app.Config文件。我的项目中没有其他内容无法从visual studio 2015连接到mysql,mysql,visual-studio,visual-studio-2015,mysql-connector,Mysql,Visual Studio,Visual Studio 2015,Mysql Connector,所以我已经花了大约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:\程序文件(x86
<?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,刚刚安装了最新版本的连接器:
请仔细阅读以下内容:
他们提到“Microsoft ASP.NET MVC”的版本可能是个问题。
错误的是,他们说VS2015附带版本5,但我已经将版本4与VS2015 Enterprise final一起安装。为了让VS2015连接到MySql,您需要使用更高版本的MySql库。虽然这似乎是一个非常简单的答案,但老实说,我在这个过程中遇到了几个问题。考虑到这一点,我将写出一个过程,该过程一直对我有效,直到EF使用MySql和VS2015。因此,不用再多说了,以下是我一直在采取的措施,以使这项工作顺利进行 1) 确保MySql连接器安装已更新 2) 创建您的web项目 3) 开放裸体 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 framework版本的mysql连接器的安装位置(我的是C:\Program Files(x86)\mysql\connector.NET 6.9\Assembly\v4.5)并获取mysql.Data.Entity.EF6.dll(我的版本是6.9.6,以后更改web.config时请记住这一点),添加一个新的引用 13) 如果其他库也是旧版本,请通过浏览解决方案中的packages文件夹并从其各自的文件夹中获取文件来添加对它们的引用。我通常不必这样做 14) 现在需要编辑Web.config。第一步是用此代码替换实体框架部分(将版本号更改为当前版本。请注意,我几周前在web上发现了此代码片段,没有原始链接。我向此信息的原始海报道歉。)
15) 确保DbProviderFactorys部分匹配
<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中的版本号错误。如果我从我的解决方案的packages目录中获取这个文件,我经常会遇到这个中止的向导,并且没有错误消息问题。每次从MySql安装目录抓取它对我来说都很好。尝试过这个,但对我来说不起作用。最终起作用的是确保我有正确的司机。我运行64位Windows 7计算机。我最终不得不安装MySQL ODBC连接器/驱动程序的32位版本,并使用以下连接字符串“Provider=MSDASQL;driver={MySQL ODBC 5.3 ANSI driver};Server=localhost;Database=xxxx;User=xxxx;password=xxxx;Option=3”;解决了这个问题。在一个新项目上测试了它,没有做上面所有的更改,它工作得很好。这篇文章非常有助于解释这一点:。希望这能为用户节省大量时间从此站点安装软件包在“开发版本”选项卡中。 我停止了Visual Studio。。我安装了。等待。。永远的接缝。Visual studio将在后台运行 等待完成 重新打开VisualStudio。加油 祝你好运
<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>