升级到MariaDB 5.5后,连接在一段时间不活动后被删除

时间:2014-12-16 11:32:10

标签: mysql mariadb mysql-5.5

我们已将数据库服务器从MySQL 5.1升级到MariaDB 5.5(5.5.40-MariaDB-1~wheezy-log)。

这次升级之后,一些长时间运行的进程mysql连接被删除。 这些流程的常见方案是:

  1. 连接MySQL
  2. 运行一些查询
  3. 在没有连接到MySQL至少一分钟的情况下做一些繁重的工作
  4. 尝试查询原始连接
  5. 出现2600错误的异常 - MySQL服务器已经消失
  6. 这确实发生在PHP CLI脚本(php 5.3)中,但也发生在Ruby应用程序(Redmine 2.5.1)中。 MySQL 5.1并没有发生这种情况,并且应用程序方面没有任何变化,所以它不应该与应用程序相关。

    MariaDB中的%timeout%变量是:

    +----------------------------+----------+
    | Variable_name              | Value    |
    +----------------------------+----------+
    | connect_timeout            | 5        |
    | deadlock_timeout_long      | 50000000 |
    | deadlock_timeout_short     | 10000    |
    | delayed_insert_timeout     | 300      |
    | innodb_lock_wait_timeout   | 50       |
    | innodb_rollback_on_timeout | OFF      |
    | interactive_timeout        | 28800    |
    | lock_wait_timeout          | 31536000 |
    | net_read_timeout           | 30       |
    | net_write_timeout          | 60       |
    | slave_net_timeout          | 3600     |
    | thread_pool_idle_timeout   | 60       |
    | wait_timeout               | 28800    |
    +----------------------------+----------+
    

    我们没有使用线程池:

    +---------------------------+---------------------------+
    | Variable_name             | Value                     |
    +---------------------------+---------------------------+
    | thread_cache_size         | 128                       |
    | thread_concurrency        | 10                        |
    | thread_handling           | one-thread-per-connection |
    | thread_pool_idle_timeout  | 60                        |
    | thread_pool_max_threads   | 500                       |
    | thread_pool_oversubscribe | 3                         |
    | thread_pool_size          | 12                        |
    | thread_pool_stall_limit   | 500                       |
    | thread_stack              | 294912                    |
    +---------------------------+---------------------------+
    

    当事情发生时,syslog中也会记录一个事件,每次看起来都一样:

    Dec 16 13:00:14 DB01 mysqld: 141216 13:00:14 [Warning] Aborted connection 9202885 to db: 'some_db_name' user: 'user' host: 'app' (Unknown error)
    

    除此之外,还有一些奇怪的root帐户断开连接消息:

    Dec 16 13:05:02 DB01 mysqld: 141216 13:05:02 [Warning] Aborted connection 9225621 to db: 'unconnected' user: 'root' host: 'localhost' (Unknown error)
    Dec 16 13:10:00 DB01 mysqld: 141216 13:10:00 [Warning] Aborted connection 9218291 to db: 'unconnected' user: 'root' host: 'localhost' (Unknown error)
    Dec 16 13:10:12 DB01 mysqld: 141216 13:10:12 [Warning] Aborted connection 9232561 to db: 'unconnected' user: 'root' host: 'localhost' (Unknown error)
    Dec 16 13:17:01 DB01 /USR/SBIN/CRON[41343]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
    Dec 16 13:20:02 DB01 mysqld: 141216 13:20:02 [Warning] Aborted connection 9248777 to db: 'unconnected' user: 'root' host: 'localhost' (Unknown error)
    Dec 16 13:20:02 DB01 mysqld: 141216 13:20:02 [Warning] Aborted connection 9248788 to db: 'unconnected' user: 'root' host: 'localhost' (Unknown error)
    Dec 16 13:20:12 DB01 mysqld: 141216 13:20:12 [Warning] Aborted connection 9248798 to db: 'unconnected' user: 'root' host: 'localhost' (Unknown error)
    

    这些设置中有没有,应该更改以修复奇怪的服务器已经消失的错误?

1 个答案:

答案 0 :(得分:0)

最后我们发现数据库不是异常丢失的原因,因为丢弃也出现在其他不相关的系统中。