MySQLフェデレーションを使用して、あるMySQLデータベースが別のデータベースのデータテーブルにアクセスできるようにします。これは1年以上正常に機能しましたが、今日(突然)、保存されたルーチンがこの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ドキュメント で多くのヘルプを見つけることができませんでした。
リモート/宛先サーバー上のアクティブな接続の数を確認してください。
(新しいバージョンの)ソースコードを見ると、「接続が多すぎます」というメッセージが実際にはリモートエンドから返されているのは良いことだと思います-ローカルサーバー(FEDERATED
エンジンが使用されています)。
SHOW STATUS LIKE '%connect%';
Threads_connected
は現在のカウント、Max_used_connections
は、最後にFLUSH STATUS
が発行されてから表示された最大値です。
その最大値がSHOW VARIABLES LIKE 'max_connections';
によって返される値と同じ(または1より大きい)場合、ある時点でそのサーバーは最大になり、このメッセージを返す可能性があります。
リモートサーバーにアイドル状態のインバウンドフェデレーション接続が多数表示される場合は、ローカルサーバーでFLUSH TABLES
を発行するとそれらが解放されることがあります。