MariaDB复制不会自动重新连接

我在两个MariaDB 5.5服务器中有一个简单的主从复制设置。 服务器之间的连接有点片断,每隔一会儿就会断开连接。

然而,“slave_retry_count = 0”在从站上的my.ini中设置,据我的理解,这意味着每当发生断开连接时,从站应该继续尝试重新连接到主站,所以实际上不应该有任何主要问题片状连接。

我遇到过复制停止,但是,几次与以下错误:

从站I / O线程停止,因为主站上的SET @master_heartbeat_period失败。 错误:查询期间与MySQL服务器的连接丢失

当我注意到这一点时,复制经常处于停止状态几个小时,只需发出一个“START SLAVE”查询就可以让事情再次好起来,但我不明白为什么这个问题首先发生。

会有人碰巧有任何经验或能够揭示这一点? 有没有办法确保复制不会因为临时连接问题而停止?

这是一个错误示例日志:

130710 2:42:29 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013) 130710 2:42:30 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000341' at position 20051884 130710 2:56:26 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013) 130710 2:56:26 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000341' at position 20523725 130710 2:57:04 [ERROR] Slave I/O: error reconnecting to master 'rep_user@master_server:3306' - retry-time: 60 retries: 0 message: Lost connection to MySQL server at 'reading au thorization packet', system error: 0, Error_code: 2013 130710 2:58:05 [Note] Slave: connected to master 'rep_user@master_server:3306',replication resumed in log 'mysql-bin.000341' at position 20523725 130710 3:26:31 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013) 130710 3:26:31 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000341' at position 20893274 130710 3:27:48 [ERROR] Slave I/O: error reconnecting to master 'rep_user@master_server:3306' - retry-time: 60 retries: 0 message: Lost connection to MySQL server at 'reading authorization packet', system error: 0, Error_code: 2013 130710 3:31:01 [Note] Slave: connected to master 'rep_user@master_server:3306',replication resumed in log 'mysql-bin.000341' at position 20893274 130710 3:32:19 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013) 130710 3:32:19 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000341' at position 21083757 130710 3:48:03 [ERROR] Slave I/O: The slave I/O thread stops because SET @master_heartbeat_period on master failed. Error: Lost connection to MySQL server during query, Error_code: 1593 130710 3:48:03 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000341', position 21083757 

(从上面的日志来看,连接确实是非常糟糕的;通常不是这么糟糕,但是时常发生,修复连接显然是理想的,但是我也希望复制不应该因为这个而停止)

从站上可能的相关my.ini设置:

 master_retry_count=0 slave_sql_verify_checksum=0 slave_net_timeout=1800 net_retry_count=10 

我对心跳了解不多,所以我从来没有设定过,但根据身份,心跳周期是900秒。

谢谢阅读。

看起来这是MariaDB和MySQL中的一个错误,在MySQL 5.6中修复。

MariaDB中的修复将在这里进行跟踪: https : //mariadb.atlassian.net/browse/MDEV-6188