我在Win 10 PC上运行了从SqlServer 2014到
MySQL 5.7.3的LinkedServer.两者都选择&插入查询通过openquery单独工作,但插入查询将不会在触发器中起作用.除非您找到下面未列出的“治疗方法”,否则请不要将其标记为副本!
OLE DB provider “MSDASQL” for linked server “MYSQL” returned message “[MySQL][ODBC 5.3(w) Driver]Optional feature not supported”.
*Msg 7391, Level 16, State 2, Procedure TRG_AfterEventInsert, Line 14
The operation could not be performed because OLE DB provider “MSDASQL” for linked server “MYSQL” was unable to begin a distributed transaction.
有很多帖子,但我已经做了我能找到的一切,但仍然无法奏效.我找到了一个名为dtcping的MS实用程序,它首先失败,直到我翻转了注册表设置,但现在它成功了.
在DTC属性屏幕上,我启用了网络DTC管理,允许远程,允许输入/出站而无需身份验证和启用XA事务.在我的链接服务器上,我有rpc& rpc out = true并且“启用DT的推广”为false.我将msdtc应用程序添加到防火墙排除项中.
我也尝试为我的LinkedServer禁用DTC,但这不起作用.我仍然得到错误.
有人可以建议调试措施吗?我花了将近一整天没有成功. MySQL驱动程序是5.3(32位).
更新:
dtcPing运行没有错误,但是当我尝试触发器插入时,我在dtctrace.log中看到以下内容
TRANSACTION_BEGUN RM_ENLISTED_IN_TRANSACTION“资源管理器#1001作为交易登记#1登记.RM guid =’57c2b4b4-f37a-4017-a1fc-2d95bd64693d’”
RECEIVED_ABORT_REQUEST_FROM_BEGINNER“收到了从初学者中止交易的请求”
TRANSACTION_ABORTING“交易正在中止”