MySql.Data.MySqlClient.MySqlException: Fatal error encountered during command execution的解决方法

最近在用SSMS作业将MySQL中的数据迁移到SQL Server时作业报错,报错信息如下:

消息
已以用户 WORKGROUP\iZw30eykry8q1hZ$ 的身份执行。 Microsoft ® SQL Server 执行包实用工具 Version 10.50.6000.34 for 64-bit 版权所有 © Microsoft Corporation 2010。保留所有权利。 开始时间: 2:07:41 错误: 2018-12-10 02:10:20.36 代码: 0xC0047062 源: house_sms_send_record 源 - 查询 [1] 说明: MySql.Data.MySqlClient.MySqlException: Fatal error encountered during command execution. —> MySql.Data.MySqlClient.MySqlException: Fatal error encountered attempting to read the resultset. —> MySql.Data.MySqlClient.MySqlException: Reading from the stream has failed. —> System.IO.IOException: 无法从传输连接中读取数据: 无法立即完成一个非阻止性套接字操作。。 —> System.Net.Sockets.SocketException: 无法立即完成一个非阻止性套接字操作。 在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) — 内部异常堆栈跟踪的结尾 — 在 MySql.Data.Common.MyNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) 在 MySql.Data.MySqlClient.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count) 在 System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count) 在 MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count) 在 MySql.Data.MySqlClient.MySqlStream.LoadPacket() — 内部异常堆栈跟踪的结尾 — 在 MySql.Data.MySqlClient.MySqlStream.LoadPacket() 在 MySql.Data.MySqlClient.MySqlStream.ReadPacket() 在 MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) 在 MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId) 在 MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) 在 MySql.Data.MySqlClient.MySqlDataReader.NextResult() — 内部异常堆栈跟踪的结尾 — 在 MySql.Data.MySqlClient.MySqlDataReader.NextResult() 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) — 内部异常堆栈跟踪的结尾 — 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior) 在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) 在 Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.PreExecute() 在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100 wrapper) 错误结束 错误: 2018-12-10 02:10:20.36 代码: 0xC004701A 源: house_sms_send_record SSIS.Pipeline 说明: 组件“源 - 查询”(1) 在执行前阶段失败,返回的错误代码为 0x80004005。 错误结束 DTExec: 已返回包执行 DTSER_FAILURE (1)。 开始时间: 2:07:41 完成时间: 2:10:20 占用时间: 159 秒. 包执行失败。. 该步骤失败。

在这里插入图片描述

有时运行正常,有时运行报错

在网上找了下,说可能原因是使用了变量,所以要设置参数Allow User Variables=True,大概意思是允许使用变量

具体设置如下:

在这里插入图片描述

在这里插入图片描述

设置好后就可以了,记录分享下,希望能帮助到大家。

猜你喜欢

转载自blog.csdn.net/lz6363/article/details/84986679