我有多台服务器设置了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,但也看不到任何超时设置。
我应该研究哪种设置?
答案 0 :(得分:2)
我最近看到一些类似的问题,事实证明我们的防火墙会阻止自动监控端口,因此autossh每10分钟重启一次ssh。这也可能发生在你身上。
检查自动搜索日志。它通常是/ var / log / syslog,除非您指定AUTOSSH_LOGFILE
答案 1 :(得分: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 bug report thread表示与许多教程相反,没有必要包含-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。