1

我为备份目的设置了多台使用 MySQL 单向复制的服务器。在其中一个奴隶上我有问题。恰好每 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 日志。它通常是 /var/log/syslog 除非您指定 AUTOSSH_LOGFILE

于 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 回答