1

バックアップ目的で、MySQL の一方向レプリケーションを使用して複数のサーバーをセットアップしています。これらのスレーブの 1 つに問題があります。正確に 10 分ごとに接続が失われ、問題なく再接続されます。エラー ログの例:

121216 18:05:49 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000002' at position 782733912
121216 18:05:49 [ERROR] Slave I/O: error reconnecting to master 'repl@127.0.0.1:5002' - retry-time: 60  retries: 86400, Error_code: 2013
121216 18:06:49 [Note] Slave: connected to master 'repl@127.0.0.1:5002',replication resumed in log 'mysql-bin.000002' at position 782733912
121216 18:15:49 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013)
121216 18:15:49 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000002' at position 822218944
121216 18:15:49 [ERROR] Slave I/O: error reconnecting to master 'repl@127.0.0.1:5002' - retry-time: 60  retries: 86400, Error_code: 2013
121216 18:16:49 [Note] Slave: connected to master 'repl@127.0.0.1:5002',replication resumed in log 'mysql-bin.000002' at position 822218944
121216 18:25:49 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013)
121216 18:25:49 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000002' at position 850106111
121216 18:25:49 [ERROR] Slave I/O: error reconnecting to master 'repl@127.0.0.1:5002' - retry-time: 60  retries: 86400, Error_code: 2013

したがって、すべてが機能しますが、エラー ログにはメッセージがあふれています。

さまざまな MySQL 設定を調べましたが、10 分または 600 秒に設定されているものはありません。

FWIW、レプリケーションは AutoSSH を使用して SSH トンネル経由で機能します。sshd_config を調べましたが、タイムアウト設定も表示されません。

どの設定を調べる必要がありますか?

4

2 に答える 2

2

最近、同様の問題をいくつか見ていますが、ファイアウォールが autossh 監視ポートをブロックしているため、autossh が 10 分ごとに ssh を再起動していることがわかりました。これはあなたにも起こるかもしれません。

autossh ログを確認してください。AUTOSSH_LOGFILE を指定しない限り、通常は /var/log/syslog です。

于 2013-06-25T19:16:13.040 に答える
0

@interskh が指摘したように、犯人はssh. /var/log/syslog次のようなメッセージが含まれていました。

Sep 15 16:34:57 servername autossh[2799]: timeout polling to accept read connection
Sep 15 16:34:57 servername autossh[2799]: port down, restarting ssh
Sep 15 16:34:57 servername autossh[2799]: starting ssh (count 136)
Sep 15 16:34:57 servername autossh[2799]: ssh child pid is 11664

多くのチュートリアルとは異なり、パラメーターを含める必要はないことを示唆するDebian バグ レポート スレッドを見つけました。-Mバージョン 1.4a-1 以降autossh、デフォルトでランダムに選択された「高い」ポートを使用します (これは、監視ポートを手動で指定するよりも間違いなく優れています-M)。

フラグを省略すると-M、問題が解決しました。

前のコマンド (10 分ごとに SSH 接続を再起動します)

autossh -p2223 -M 20000 -f username@example.com -L 12345:127.0.0.1:3306 -N

新しい (作業中の) コマンド

autossh -p2223 -f username@example.com -L 12345:127.0.0.1:3306 -N

誰でも役立つ場合に備えて、SSH クライアントは Ubuntu を実行しており、SSH サーバーは CentOS を実行しています。

于 2015-09-15T22:59:18.033 に答える