我们有一个基于dot net 2.0的C#产品,它使用Mysql作为数据存储.当我们在XP/Win 7机器上安装mysql连接器6.3.6时,我们能够从C#代码连接到数据库而没有任何问题.但是,当mysql连接器实际上没有安装在机器上但与可执行文件存在于同一目录中时,我们在连接到mysql数据库时遇到问题.我们不希望在我们希望产品运行的每台机器上安装连接器.我们希望在我们的代码中使用任何第三方dll(例如记录器)时直接使用connectory dll.
即使我们将mysql.data.dll复制到安装了exe的同一目录中,它也会构建但不会连接到数据库.
给出的错误是
无法找到请求的.Net Framework数据提供程序.它可能没有安装Blockquote
技术信息:
当我们使用ASP.Net时,我们可以将下面给出的标签指定到web.config中,我们可以通过将dll放入bin目录直接连接到mysql数据库
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
为什么我们不能在C#中为桌面环境中的Client Server应用程序执行相同的操作.
所以我已经花了大约2天的时间来解决这个问题.我已经成功地在我的工作场所电脑上修复它,并且无法在我的家用电脑上工作.我已经阅读了大约十几篇SO文章和oracle论坛的文章和诸如此类的东西,但它仍然不起作用.
我有1.2.4 msql for visual studio,它应该是一个适用于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, …Run Code Online (Sandbox Code Playgroud) 解决方案:我已经决定为有相同问题的人提供一步一步的指导.我不知道这是否完全解决了所有问题,但它确实让你编译了我将提供的代码片段.如果有任何错误请评论,以便我可以修复它们.这是为了帮助那些大多放弃失败尝试的人,坦率地说,整个过程应该记录在案.对不起,很长的帖子:P
STEP BY STEP FOR SETTING UP MYSQL CONNECTOR/C++ FOR 2010 MICROSOFT VISUAL C++ EXPRESS:
FILES NEEDED:
Windows x86 32 Bit ZIP: Connector/C++ -> http://dev.mysql.com/downloads/connector/cpp/
Windows X86 32 Bit ZIP: Connector/C -> http://dev.mysql.com/downloads/connector/c/
BOOST -> http://www.boost.org/users/download/
The reason why 62bit doesn't work is because you are using the express edition. After you have downloaded all those files, extract them. I keep mine in C (for ease of access). Now open up MVC++ 2010 EXPRESS.
File -> New -> Project
Win32 …Run Code Online (Sandbox Code Playgroud) NuGet上的MySql.ConnectorNET.Data和MySql.Data包之间有什么区别?
它们似乎都是由同一个用户(MySQL)发布的,Project Site链接指向同一个位置(http://dev.mysql.com/downloads/).
安装两者后,ConnectorNET版本似乎落后于另一版本.
我计划构建一个将在Linux上托管的MVC 6网站,我目前正处于初始测试阶段,看看新的ASP.NET 5(vNext)和MVC 6是如何工作的,以及我是否可以在Linux上部署所有内容.
我的网站必须使用数据库,因为它将部署在Linux上,显然我不能使用SQL Server.我非常想使用MySQL,但也许有其他选择?我们现在只说,我需要MySQL,除非它不可能.
我意识到这一切仍然处于测试阶段,并没有为生产做好准备,但我只是想做初始设置,以确保在我开始在实际网站上工作之前一切正常.如果没有数据库连接,我不能这样做......
我很快发现,实体框架7还没有MySQL连接器,这是MVC 6使用的.这是否意味着我运气不好,必须等到新的MySQL连接器出来支持EF7?或者我可以在MVC 6网站中恢复到EF6,它支持MySQL吗?我尝试将依赖项添加到EF6但是在默认的MVC 6模板中有很多依赖项,所有引用EF7我完全丢失了,并且根本不知道如何处理它,如果它甚至可能的话.
总结一下:
正如标题所说,无论我做什么,MySQL都不会出现在Visual Studio 2015的数据源列表中.
我已经完成了这个问题中建议的所有内容:MySQL数据源没有出现在Visual Studio中
我还安装了开发版本和不同版本的连接器以及相应的MySQL VS驱动程序,如下表所示:https://dev.mysql.com/doc/visual-studio/en/visual-studio-install.html
我重新安装了Visual Studio本身.
所有这一切都无济于事.我可以手动配置连接并运行一个读取和写入MySQL的.Net应用程序,但Visual Studio拒绝在数据源弹出窗口中对MySQL执行任何操作.
没有将数据库移动到SQL Server我不知道还能在这里做些什么.
任何解决这个问题的建议或帮助都会很棒.过去48小时我一直在这里.
目前安装的版本:MySQL for Visual Studio - 1.2.7,Connector/Net - 6.9.9
这适用于基于.Net 4.5.2的项目.
我正在尝试连接到本地MySQL数据库.
我有这个连接器:
using(MySqlConnection conn = new MySqlConnection("Database=Studentenverwaltung;Port=3306;Data Source=127.0.0.1;User Id=root;Password=abc123"))
{
try
{
conn.Open();
Console.WriteLine("Opened!");
conn.Close();
}
catch(Exception e)
{
Console.WriteLine("Cannot open Connection");
Console.WriteLine(e.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个例外:
MySql.Data.MySqlClient.MySqlException(0x80004005):主机127.0.0.1不支持SSL连接.
它似乎无法连接到数据库,因为数据库不支持SSL.那么有没有办法如何连接到没有SSL的数据库?
运行命令时:python manage.py runserver我收到以下错误:
django.db.utils.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: The specified module could not be found.\r\n")
Run Code Online (Sandbox Code Playgroud)
这些是相关设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'polls',
'USER': 'root',
'PASSWORD': '<my-password>',
'HOST': 'localhost'
}
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了解决问题的解决方案,例如在这个线程中。他们建议将引擎更改为mysql.connector.django,但是 django 推荐的引擎是mysqlclient,因此我想使用它。其他建议是使用 naive password 而不是 sha2。出于安全原因,我宁愿不使用此解决方案。
版本:
我的服务器使用 MySqlConnector 并与 AWS 上的 MySQL 数据库进行通信。我在 MySQL 中存储了 5 分钟的 API 计数器块。这些 API 计数器随着每次 API 调用而递增,并由 ConcurrentDictionary 代码处理(这似乎不是问题)。这行代码最近引发了一个异常,它是通过 MySqlConnector 访问 MySQL 数据库表的 linq 查询的一部分:
await _context.ApiCounts.Where(c => c.ApiName == apiName && c.StartTime >= startTime).ToListAsync();
我以前从未见过此行失败,但突然我的一台服务器开始在上面的行中抛出以下异常:
InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
at System.ThrowHelper.ThrowInvalidOperationException_ConcurrentOperationsNotSupported
at System.Collections.Generic.Dictionary`2.FindEntry
at System.Collections.Generic.Dictionary`2.TryGetValue
at Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.GetNodeType
at Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.IsRegistered
at System.Linq.Enumerable.Any
at Remotion.Linq.Parsing.Structure.ExpressionTreeParser.GetQueryOperatorExpression
at …Run Code Online (Sandbox Code Playgroud) mysql-connector ×10
mysql ×9
c# ×3
asp.net-core ×2
.net ×1
ado.net ×1
c++ ×1
django ×1
nuget ×1
python ×1
python-3.x ×1