Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 非常奇怪的MySQL超时只发生在一台开发人员机器上_C#_Mysql - Fatal编程技术网

C# 非常奇怪的MySQL超时只发生在一台开发人员机器上

C# 非常奇怪的MySQL超时只发生在一台开发人员机器上,c#,mysql,C#,Mysql,我对得到这个问题的答案并不乐观,因为这是一个非常奇怪而且似乎与机器有关的问题,但我希望其他人已经解决了这个问题 我正在用Visual Studio和MySQL.Data ADO.Net驱动程序(版本6.9.8)在C#中开发一个用于数据库访问的应用程序。有两次,我遇到了这样一种情况:非常简单的SQL查询只在开始超时前几分钟起作用。从那时起,他们再也不会成功了——但只能在我的机器上。应用程序中的每个其他查询(有数百个)都可以正常工作,但是一个查询,即使我稍微修改一下,也不会再工作。如果我推送代码,另

我对得到这个问题的答案并不乐观,因为这是一个非常奇怪而且似乎与机器有关的问题,但我希望其他人已经解决了这个问题

我正在用Visual Studio和MySQL.Data ADO.Net驱动程序(版本6.9.8)在C#中开发一个用于数据库访问的应用程序。有两次,我遇到了这样一种情况:非常简单的SQL查询只在开始超时前几分钟起作用。从那时起,他们再也不会成功了——但只能在我的机器上。应用程序中的每个其他查询(有数百个)都可以正常工作,但是一个查询,即使我稍微修改一下,也不会再工作。如果我推送代码,另一个开发人员运行它,代码在他的机器上就可以完美地工作

作为这些查询有多简单的一个示例,下面是我最近遇到的一个问题:

SELECT * FROM user_preferences WHERE (user_id=@user_id) LIMIT 1
我从中选择的表只有1行4列。再简单不过了。当查询等待超时时,它不会出现在MySQL的进程列表中,因此我必须假设它从未到达服务器,或者服务器立即返回,MySQL连接器只是无法返回响应。我想弄清楚是哪一种,但我怀疑这两种方式都会有不同

总而言之,今天早上这个查询很有效。除了一些不相关的代码外,我什么也没做任何更改,它很快开始不返回任何数据。我开始调试它,现在它只是超时。另一个开发人员运行代码,它工作得非常好

在这里,我完全不知所措。如果没有弄清楚这一点,我担心我将不得不重新想象我的笔记本电脑,如果可能的话,我真的很想避免这种情况。任何帮助都将不胜感激,尽管正如我所说的,这可能是一种冒险

编辑:有问题的C#代码:

using (var connection = new MySqlConnection(connectionSettings.GetConnectionString()))
                {
                    await connection.OpenAsync(cancellationToken);
                    using (var reader = await MySqlHelper.ExecuteReaderAsync(connection, sql.Query.ToString(), cancellationToken, sql.Parameters.ToArray()))
                    {
                        while (await reader.ReadAsync(cancellationToken))
                        {
                            readerAction(reader);
                        }
                    }
                }

你能展示更多你的代码吗?比如你把这个查询称为什么?你得到的确切的异常是什么?有两个超时,一个是db连接超时,另一个是命令超时。查看数据库是否先连接,然后在执行查询时尝试设置Command.CommandTimeout。您还可以尝试从MySql workbench运行相同的查询。编辑以添加一些代码。如果我获取“sql”变量中包含的查询并将其粘贴到workbench中,则效果良好。今天早上,使用你在这里看到的代码,它工作得很好。除了与此无关的代码外,没有任何更改。我恢复到今天早上的代码,它也不起作用。我只是重新运行它来查找异常,第一次它甚至没有抛出异常。它什么也没回来。我再次运行它,这次它等待了相同的时间,抛出了一个MySQL异常,说“在命令执行过程中遇到了致命错误”无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应