我使用 MySQL federation 让一个 MySQL 数据库访问另一个数据库的数据表。一年多来,这种方法一直运行良好,但今天(突然)一个存储例程报告了这个 MySQL 错误:
Error Code: 1429. Unable to connect to foreign data source: Too many connections
如果我尝试使用访问联合表SELECT
,我会得到
Error Code: 1030 Got error 1 from storage engine
转到托管数据的 MySQL 服务器,我实际上可以获得SELECT
所需的数据,因此它似乎正在发挥作用。
访问数据的服务器版本为 5.0.51a24,主机服务器版本为 5.0.96-0。也就是说,是旧版本。
我该如何解决这个问题?MySQL 文档。
答案1
检查远程/目标服务器上的活动连接数。
通过查看源代码(较新版本),我认为“连接过多”消息实际上是从远程端返回的,而不是源自本地服务器(FEDERATED
使用引擎的地方)。
SHOW STATUS LIKE '%connect%';
Threads_connected
是当前计数,Max_used_connections
是自上次FLUSH STATUS
发出以来看到的最高值。
如果最大值与返回的值相同(或大 1),SHOW VARIABLES LIKE 'max_connections';
那么在某个时刻该服务器就达到最大值并且可以返回此消息。
如果远程服务器显示大量空闲的入站联合连接,您可能会发现FLUSH TABLES
在本地服务器上发出操作将释放它们。