试图从链接服务器检索数据-与位于';的MySQL服务器的连接中断;正在等待初始通信数据包';,系统错误:10060“;

试图从链接服务器检索数据-与位于';的MySQL服务器的连接中断;正在等待初始通信数据包';,系统错误:10060“;,mysql,sql-server,linked-server,Mysql,Sql Server,Linked Server,我有一个在MySQL数据库上连接和存储数据的应用程序,我需要在另一个使用SQL Server数据库的应用程序的视图中连接和检索这些数据。我的尝试是创建一个链接服务器,连接到SQL server中的MySQL服务器 这似乎起了作用,所有连接都已通过,如果我运行以下查询 SELECT * FROM MYSQLLINK...table1` or `SELECT * FROM OPENQUERY(MYSQLLINK, 'SELECT * FROM table1') 我得到了结果 问题 问题是,我想创建

我有一个在MySQL数据库上连接和存储数据的应用程序,我需要在另一个使用SQL Server数据库的应用程序的视图中连接和检索这些数据。我的尝试是创建一个链接服务器,连接到SQL server中的MySQL服务器

这似乎起了作用,所有连接都已通过,如果我运行以下查询

SELECT * FROM MYSQLLINK...table1` or `SELECT * FROM OPENQUERY(MYSQLLINK, 'SELECT * FROM table1')
我得到了结果

问题

问题是,我想创建一个视图,该视图连接了相当多的引用表(实际上我有20个连接,但它连接的是同一个表,因为它是一个大的引用表) 但是在
选择
创建视图
上执行时,我得到以下错误

返回链接服务器“MYSQLLINK”的OLE DB提供程序“MSDASQL” 消息“[MySQL][ODBC 5.1驱动程序]与位于的MySQL服务器断开连接” “等待初始通信数据包”,系统错误:10060”。 味精7303,16级,状态1,第4行 无法为链接服务器“MYSQLLINK”初始化OLE DB提供程序“MSDASQL”的数据源对象

我不确定为什么会发生这种情况,如果有人能帮助我解决这个问题,帮助缓解这个错误,从而创建和查询我的视图,我将不胜感激

我注意到,如果我注释掉85%的连接,查询不会失败。我将在哪里增加提到的这本书的时间


我还应该提到,MySQL在AWS服务器上,而SQL服务器在我的本地主机上。

我无法在本地端重新创建失败测试用例,但您提到的内容将我们引向以下指针:

  • 您的链接服务器连接超时(可能)
  • 超时的潜在原因可能是查询的高响应时间(连接了许多参考表的视图)
改变方法如何:

  • 是否可以在MySQL而不是SQL Server上创建视图
  • 视图结果的物化是一种选择吗
  • 或者,在SQL Server端编写一个存储过程,并使用临时表存储中间结果,一次一个(或一次尽可能多地)顺序联接表,怎么样

不确定,但连接链接的服务器表和本地表是“绝望之坑”(请参阅@EricLippert),而是编写一个过程,用远程数据加载临时表,然后执行所需的任何连接。
Completion time: 2020-01-19T22:00:00.1759949-04:00