C# 如何解决MySqlException:预期的数据包结束问题?

C# 如何解决MySqlException:预期的数据包结束问题?,c#,mysql,amazon-web-services,C#,Mysql,Amazon Web Services,我想使用SELECT语法结合Unity和AWS RDS导入数据,但这不是因为MySqlException中的错误:数据包的预期结束 有解决办法吗?当前cmd.ExecuteNonQuery();这是失败的 我是新的统一到AWS RDS互连,所以我不知道这是什么问题。我猜这个问题是来自数据库末端数据的传入数据包,而不是我的源代码 有人知道解决办法吗?非常感谢你的帮助。我已经试了5天了,但解决不了 void Awake() { string connectionString = "Data

我想使用SELECT语法结合Unity和AWS RDS导入数据,但这不是因为MySqlException中的错误:数据包的预期结束

有解决办法吗?当前cmd.ExecuteNonQuery();这是失败的

我是新的统一到AWS RDS互连,所以我不知道这是什么问题。我猜这个问题是来自数据库末端数据的传入数据包,而不是我的源代码

有人知道解决办法吗?非常感谢你的帮助。我已经试了5天了,但解决不了

void Awake()
{
    string connectionString = "Data Source=;Initial Catalog=;User ID=;Password=;Charset=utf8";

    using (MySqlConnection connection = new MySqlConnection(connectionString))
    {
        connection.Open();
        Debug.Log("Success");

        string query = "SELECT * FROM Account";

        MySqlCommand cmd = connection.CreateCommand();
        cmd.Connection = connection;
        cmd.CommandText = query;
        cmd.CommandTimeout = 99999;
        cmd.CommandText = "USP_WAIT";
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.ExecuteNonQuery();

        Debug.Log(cmd);
    }
}
MySqlException:数据包预期结束
MySql.Data.MySqlClient.NativeDriver.CheckEOF()(位于:0)
MySql.Data.MySqlClient.NativeDriver.ReadEOF()(位于:0)
MySql.Data.MySqlClient.NativeDriver.GetColumnsData(MySql.Data.MySqlClient.MySqlField[]列)(位于:0)
MySql.Data.MySqlClient.Driver.GetColumns(System.Int32计数)(at:0)
MySql.Data.MySqlClient.ResultSet.LoadColumns(System.Int32 numCols)(位于:0)
MySql.Data.MySqlClient.ResultSet..ctor(MySql.Data.MySqlClient.Driver d,System.Int32 statementId,System.Int32 numCols)(位于:0)
MySql.Data.MySqlClient.Driver.NextResult(System.Int32 statementId)(地址:0)
MySql.Data.MySqlClient.MySqlDataReader.NextResult()(位于:0)
以MySqlException的形式重新显示:尝试读取结果集时遇到致命错误。
MySql.Data.MySqlClient.MySqlDataReader.NextResult()(位于:0)
MySql.Data.MySqlClient.MySqlDataReader.Close()(位于:0)
MySql.Data.MySqlClient.MySqlCommand.ResetReader()(位于:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(System.Data.CommandBehavior)(位于:0)
MySql.Data.MySqlClient.MySqlCommand.executedbatareader(System.Data.CommandBehavior)(位于:0)
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(System.Data.CommandBehavior)(at:0)
System.Data.Common.DbDataAdapter.FillInternal(System.Data.DataSet数据集,System.Data.DataTable[]数据表,System.Int32 startRecord,System.Int32 maxRecords,System.String srcTable,System.Data.IDbCommand命令,System.Data.CommandBehavior)(位于:0)
System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable[]dataTables,System.Int32 StartRecords,System.Int32 maxRecords,System.Data.IDbCommand,System.Data.CommandBehavior)(位于:0)
System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable数据表)(at:0)
(带检查的包装器远程调用)System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)
MySql.Data.MySqlClient.ISSchemaProvider.GetTable(System.String sql)(地址:0)
MySql.Data.MySqlClient.ISSchemaProvider.Query(System.String表_名称,System.String首字母_其中,System.String[]键,System.String[]值)(at:0)
MySql.Data.MySqlClient.ISSchemaProvider.GetProcedures(System.String[]限制)(位于:0)
MySql.Data.MySqlClient.ISSchemaProvider.GetSchemaInternal(System.String集合,System.String[]限制)(位于:0)
MySql.Data.MySqlClient.SchemaProvider.GetSchema(System.String集合,System.String[]限制)(位于:0)
MySql.Data.MySqlClient.MySqlConnection.GetSchema(System.String collectionName,System.String[]restrictionValues)(位于:0)
MySql.Data.MySqlClient.ProcedureCache.GetProcData(MySql.Data.MySqlClient.MySqlConnection连接,System.String spName)(位于:0)
MySql.Data.MySqlClient.ProcedureCache.AddNew(MySql.Data.MySqlClient.MySqlConnection连接,System.String spName)(位于:0)
MySql.Data.MySqlClient.ProcedureCache.GetProcedure(MySql.Data.MySqlClient.MySqlConnection conn,System.String spName,System.String cacheKey)(位于:0)
MySql.Data.MySqlClient.StoredProcedure.GetParameters(System.String procName、System.Data.DataTable和proceduresTable、System.Data.DataTable和parametersTable)(位于:0)
MySql.Data.MySqlClient.StoredProcedure.Resolve(System.Boolean)(地址:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(System.Data.CommandBehavior)(位于:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()(位于:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()(位于:0)
Awake()(位于Assets/Scripts/DatabaseConnection.cs:34)

您将
命令文本
设置为
查询
,然后在不执行
查询
的情况下将其更改为
“USP\u WAIT”
,因此
“USP\u WAIT”
是您唯一执行的操作。这不太可能是问题的全部,但也不可能是您想要做的。感谢您的帮助,但是如果没有
USP\u WAIT
StoredProcedure
Timeout
将不起作用,发生这种情况时,会抛出此错误<代码>“连接失败,因为没有来自所属成员的响应,或者连接丢失,因为主机没有注意到。”我应该如何解决此问题?这应该是您的问题。您发布的内容是XY问题
Timeout
与命令相关,而与连接无关,原始错误消息与连接相关。事实上,USP_WAIT听起来可疑。在不知道它是做什么的情况下,它的名字暗示了一些您绝对不希望存储过程做的事情。。。。那么,如果我发布一个新问题,我能得到答案吗?
MySqlException: Expected end of data packet
MySql.Data.MySqlClient.NativeDriver.CheckEOF () (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.NativeDriver.ReadEOF () (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.NativeDriver.GetColumnsData (MySql.Data.MySqlClient.MySqlField[] columns) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.Driver.GetColumns (System.Int32 count) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ResultSet.LoadColumns (System.Int32 numCols) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ResultSet..ctor (MySql.Data.MySqlClient.Driver d, System.Int32 statementId, System.Int32 numCols) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.Driver.NextResult (System.Int32 statementId) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlDataReader.NextResult () (at <326e9aab93854e739606c3572c385a34>:0)
Rethrow as MySqlException: Fatal error encountered attempting to read the resultset.
MySql.Data.MySqlClient.MySqlDataReader.NextResult () (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlDataReader.Close () (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlCommand.ResetReader () (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader (System.Data.CommandBehavior behavior) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader (System.Data.CommandBehavior behavior) (at <326e9aab93854e739606c3572c385a34>:0)
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader (System.Data.CommandBehavior behavior) (at <290425a50ff84a639f8c060e2d4530f6>:0)
System.Data.Common.DbDataAdapter.FillInternal (System.Data.DataSet dataset, System.Data.DataTable[] datatables, System.Int32 startRecord, System.Int32 maxRecords, System.String srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior) (at <290425a50ff84a639f8c060e2d4530f6>:0)
System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable[] dataTables, System.Int32 startRecord, System.Int32 maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior) (at <290425a50ff84a639f8c060e2d4530f6>:0)
System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable) (at <290425a50ff84a639f8c060e2d4530f6>:0)
(wrapper remoting-invoke-with-check) System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)
MySql.Data.MySqlClient.ISSchemaProvider.GetTable (System.String sql) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ISSchemaProvider.Query (System.String table_name, System.String initial_where, System.String[] keys, System.String[] values) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ISSchemaProvider.GetProcedures (System.String[] restrictions) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ISSchemaProvider.GetSchemaInternal (System.String collection, System.String[] restrictions) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.SchemaProvider.GetSchema (System.String collection, System.String[] restrictions) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlConnection.GetSchema (System.String collectionName, System.String[] restrictionValues) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ProcedureCache.GetProcData (MySql.Data.MySqlClient.MySqlConnection connection, System.String spName) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ProcedureCache.AddNew (MySql.Data.MySqlClient.MySqlConnection connection, System.String spName) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.ProcedureCache.GetProcedure (MySql.Data.MySqlClient.MySqlConnection conn, System.String spName, System.String cacheKey) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.StoredProcedure.GetParameters (System.String procName, System.Data.DataTable& proceduresTable, System.Data.DataTable& parametersTable) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.StoredProcedure.Resolve (System.Boolean preparing) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader (System.Data.CommandBehavior behavior) (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader () (at <326e9aab93854e739606c3572c385a34>:0)
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery () (at <326e9aab93854e739606c3572c385a34>:0)
DatabaseConnection.Awake () (at Assets/Scripts/DatabaseConnection.cs:34)