问题标签 [connector-net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
428 浏览

mysql - 尝试使用 Windows 身份验证连接到 MySQL 时出现 NullReferenceException

我正在尝试使用 Windows 身份验证(集成安全性)连接到本地 MySQL 数据库。我使用以下连接字符串:

MySqlConnection.Open()我从内心深处的某个地方得到一个`NullReferenceException。这是堆栈跟踪:

关于我的设置的一些细节:

  • 视窗 10 x64
  • MySQL 服务器 5.7.16 x64
  • 连接器/NET 6.9.9 x86
  • C# 与 Visual Studio 2015,针对 .Net Framework 4.5.2

这是服务器中的错误还是连接器中的错误?还是我的连接字符串中有错误?

0 投票
0 回答
73 浏览

c# - MySQLConnection 没有实现

我是 C# 新手并连接到数据库。问题是:每当我尝试通过运行此代码连接到数据库时:

我得到窗口“应用程序处于中断模式”当我查看事件窗口时,我可以看到描述为“无源代码”的异常。当我尝试查看 MySQLConnection 中函数的实现时,我看不到它们,只有声明。那么我应该怎么做/重做/重新安装才能解决这个问题?使用 VS2017、.NET Framework 4.6.1、Connector/NET (MySQL)

0 投票
0 回答
38 浏览

mysql - MySQL连接字符串中是否需要序列?

我正在使用连接器/网络,但有时由于连接字符串而在服务器上生成连接错误。

有什么顺序可以遵循吗?

0 投票
1 回答
634 浏览

c# - 为什么在 MySql Workbench 和 PHP/PDO 中使用 MySQL Connector/net 时,DELETE 语句会静默失败?

我有一个 MariaDB 数据库,其中包含一个表,其中包含有关在具有 Mono JIT 编译器版本 5.4.0.201 和 MySql Connector/NET(最新版本 8.0.13)的 CentOS 7 服务器上运行的移动设备(android 和 ios)的信息。

一切都很好,除了我无法通过连接器/NET 从设备表中删除基于推送令牌的设备。表定义如下:

当我从 Mono 应用程序运行 DELETE 语句时,没有发生异常,但是从 ExecuteNonQuery() 返回的 int 值始终为 0,并且没有从表中删除任何行。mariadb.log (log_warning=4) 中不记录任何错误或警告。如果我将完全相同的 SQL 语句复制到 MySql Workbench 并在那里执行该语句,则会按预期删除行。如果我创建一个 PHP 脚本并使用 PDO 连接到同一个数据库,它也可以按预期工作。所有三个测试用例都使用相同的用户(root)。所以这似乎是特定于 Connector/NET 的问题

更新:我启用了general_log,我看到正确的数据库被初始化并且语句正在运行 - 但表没有改变!日志输出:

更新 #2:我尝试使用相同的 WHERE 子句将 DELETE 语句更改为 SELECT 语句,你瞧,没有返回任何行。因此,由于某种原因,notificationId 上的匹配似乎不起作用。会不会是编码问题?为什么它可以在其他客户端工作,但不能在我的 Connector/NET 客户端工作?

0 投票
1 回答
285 浏览

mysql - 尝试使用 Mysql.Data.Entity 时出现异常

我正在尝试使用适用于 Mac 的 Visual Studio 2019 Community Preview 使用 MySQL 和 EF6 运行测试项目。我使用Web Application (Model-View-Controller)/.NET Core -> App模板作为起点以及MyWind数据库。我收到以下异常,不知道如何继续。

这是我的相关代码。

家庭控制器.cs

NorthwindContext.cs

NorthwindMysqlConfiguration.cs

客户.cs

这是我正在使用的单声道版本。

我不确定这是否相关,但对于MySql.Data.EntityandEntityFramework包,我收到以下警告:

对于它的价值,我可以MySql.Data.MySqlClient.MySqlConnection直接使用从数据库中检索数据。

0 投票
1 回答
311 浏览

mysql - MySQL 8:通过 DDL 创建集合

我希望能够通过简单的 SQL DDL 语句而不是使用 X-Protocol 客户端来创建 MySQL 文档存储集合。

有什么办法吗?

编辑:我会尝试澄清这个问题。

集合是使用 JSON 数据类型和函数的表。这很清楚。我想知道如何在不使用 X-Protocol 调用的情况下创建一个集合,并确保将上述集合作为一个实际的集合。

从 MySQL 工作台来看,集合表有一个带有表达式的 _id blob PK、一个 doc JSON 列和一些我目前不记得的其他元素(可能是索引等)。

我无法通过 Workbench 告诉我们需要什么额外的模式/元数据信息才能将表视为文档存储集合,或者仅仅存在 _id 和 doc 列是否就足够了。

我希望这能解决问题。

0 投票
2 回答
299 浏览

mysql - 使用 BulkCopy 时出错(无法读取结果集)

我开发了一个 vb.net 应用程序,它使用来自另一台服务器的 API 请求填充表,并使用 MySqlBulkCopy 将这些表传输到 MySql 数据库。

这是我用来批量复制多个表的助手类(仅初始化一次)。执行 writeToServer() 会引发以下错误:“读取结果集失败。” 没有任何进一步的信息。

我将要复制到的表的名称以及包含数据的表传递给 WriteToMySql。

该错误出现不一致,当它出现时,重新执行(使用相同的表)没有帮助,它会触发相同的错误,就像它与表本身有关。我正在插入 6 个表,其中包含最多行的表会触发该错误(始终是同一个表),而任何其他表都被成功复制。

修复错误的唯一方法是从 API 加载数据(重新初始化并重新填充表)并尝试插入。大多数情况下,它不会导致该错误,它会触发超级随机。

任何帮助将不胜感激,如果需要,我可以提供更多信息。提前致谢。

编辑(对问题的回答):产生问题的数据表包含不超过 200k 行,但我已经尝试插入更大的表(2-3m 行)以检查它是否必须与大小有关,不存在错误。

当错误发生时,我看到 BulkCopy 插入了一部分行,然后抛出了错误。基本上数据库上有插入的行,但不是全部。

Ds 是我从 API 填写的变量(数据集)的名称。其他独立表由我随后生成,用于处理数据和生成所需值。

我没有设置任何超时,但是在调试时我看到它等于 0,这意味着无论需要多长时间它都应该等待。

我试图在调试时触发错误,它最近出现在发布版本上。当我这样做时,我会提供更多信息。

Edit2(堆栈跟踪和内部异常)

堆栈跟踪:

内部异常:

0 投票
3 回答
184 浏览

c# - MySQL 连接器/网络异常:无法连接到任何指定的 MySQL 主机

我正在使用带有 MySQL 的 ASP.NET MVC 5(使用连接器/网络)。我可以连接到数据库并且一切正常......但是一旦服务器繁忙,我就会收到以下异常:

MySql.Data.MySqlClient.MySqlException (0x80004005):无法连接到任何指定的 MySQL 主机。

我正在使用 NinjectDbContext在 MVC中注入Controller

我在 Galera 集群中有 3 个 MySQL 服务器实例,这是我的 ConnectionString:

当机器人开始抓取网站时,通常会发生此异常。

我见过类似的这个问题,但是问题是他们永远无法连接到 MySQL(我相信他们ConnectionString是不正确的)但是这个答案(在同一个问题上)似乎描述了我遇到的问题:

如果您的连接最初可以正常工作,但在多次成功连接后您开始看到此错误,则可能是这个问题

总之:如果您打开和关闭连接,Windows 会出于某些愚蠢的原因保留 TCP 端口以供将来使用。多次执行此操作后,它会耗尽可用端口。

答案完美地描述了这个问题,但是他们的解决方案并没有真正的帮助:

  1. 他们建议使用连接池(连接器/网络默认使用连接轮询- 所以这没有帮助)
  2. 他们建议更改 Windows 设置并分配更多端口:

netsh int ipv4 set dynamicport tcp start=10000 num=50000

本文档还解释了一个类似的错误。

但是,我不确定这个问题是否是因为 Windows 端口不足而引起的?

有没有人遇到过类似的问题?

这是我收到的错误的堆栈跟踪:

更新

正如@MarcAlff 所建议的,我运行了以下命令:

结果如下:

这些是有错误的列:

0 投票
1 回答
30 浏览

c# - 从 MySQL 升级后无法连接到 MariaDB

我的 Windows 机器上有 MySQL5.7。我已经安装了 MariaDB 10.7 并卸载了 MySQL。

我在 MariaDB 中恢复了 MySQL 转储文件。我现在可以使用 MySQL Workbench 连接到 MariaDB 并正确查询数据库。

但是,当我尝试使用 C# 代码连接到数据库时,出现以下异常:

当前不支持 5.6 之前的 MySQL 版本

这是内部的例外:

当前不支持 5.6 之前的 MySQL 版本