mysql - 尝试从链接服务器检索数据 - 在“等待初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:10060”
问题描述
我有一个在 MySQL 数据库上连接和存储数据的应用程序,我需要在另一个使用 SQL Server 数据库的应用程序的视图中连接和检索这些数据。我试图处理这个问题是在 SQL Server 中创建一个连接到 MySQL 服务器的链接服务器。
这似乎有效,所有连接都已通过,如果我运行以下查询
SELECT * FROM MYSQLLINK...table1` or `SELECT * FROM OPENQUERY(MYSQLLINK, 'SELECT * FROM table1')
我得到结果。
问题
问题是,我想创建一个视图来连接相当多的引用表(我实际上有 20 个连接,但它正在连接同一个表,因为它是一个很大的引用表。)但是在执行SELECT
orCREATE VIEW
我得到以下错误。
链接服务器“MYSQLLINK”的 OLE DB 提供程序“MSDASQL”返回消息“[MySQL][ODBC 5.1 Driver]Lost connection to MySQL server at 'waiting for initial communication packet',系统错误:10060”。消息 7303,级别 16,状态 1,第 4 行无法初始化链接服务器“MYSQLLINK”的 OLE DB 提供程序“MSDASQL”的数据源对象。
Completion time: 2020-01-19T22:00:00.1759949-04:00
我不确定为什么会发生这种情况,如果有任何人可以帮助解决这个问题并帮助减轻这个错误,这将允许创建和查询我的视图,我将不胜感激。
我注意到如果我注释掉 85% 的连接,查询不会失败。我会在哪里增加提到的书本的时间?
我还应该提到 MySQL 在 AWS 服务器上,而 SQL Server 在我的本地主机上。
解决方案
我无法在本地端重新创建失败测试用例,但是您提到的内容指导我们遵循以下指示:
- 您的链接服务器连接超时(可能)
- 超时的潜在原因可能是查询的高响应时间(连接很多参考表的视图)
改变方法怎么样:
- 你能在 MySQL 而不是 SQL Server 上创建视图吗?
- 视图结果的具体化是一种选择吗?
- 或者,如何在 SQL Server 端编写一个存储过程,并使用临时表存储中间结果,一次一次(或一次一次尽可能多地)连接您的表?
推荐阅读
- docker - Traefik 在 Jupyterhub 中使用了错误的前端规则
- node.js - 其他 Amplify 和 AWS 文件中缺少模块“aws-exports”
- xcode11.3 - 归档后 Xcode 立即崩溃
- git - 在 PyCharm 终端中,“git branch -a”显示已删除的远程 git (Github) 存储库
- python - 排列特征重要性
- python - 未找到 vtk 错误的匹配分布
- python - PyTorch:以自定义顺序有效地交错两个张量
- sql - 具有多列输入的 SQL 函数中的嵌套案例表达式
- flutter - Flutter 的灵活行为
- r - R中的累积曲线(不是素食主义者)