【发布时间】:2017-01-18 14:42:13
【问题描述】:
我将 LinkedServer 从 SqlServer 2014 设置为在我的 Win 10 PC 上运行的 MySQL 5.7.3。选择和插入查询都可以通过 openquery 单独工作,但插入查询不会在触发器中起作用。请不要将此标记为重复,除非您找到下面未列出的“治疗”!
链接服务器“MYSQL”的 OLE DB 提供程序“MSDASQL”返回消息“[MySQL][ODBC 5.3(w) Driver]Optional feature not supported”。
*消息 7391,级别 16,状态 2,过程 TRG_AfterEventInsert,第 14 行
无法执行操作,因为链接服务器“MYSQL”的 OLE DB 提供程序“MSDASQL”无法开始分布式事务。
关于这方面的帖子有很多,但我已经做了我能找到的所有事情,但它仍然无法正常工作。我发现了一个名为 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 "事务正在中止"
【问题讨论】:
标签: mysql sql-server msdtc