У меня была эта проблема на нескольких моих серверах, сейчас это mysql 5.5, но она также присутствовала с более ранними версиями. Он присутствовал с myisam, теперь я в основном использую innodb.
Случается, что база данных отключается случайно. Я использую сторожевые устройства, которые ждут эти события и перезапускают БД, но время от времени это приводит к повреждению индекса, который делает таблицы непригодными для использования до тех пор, пока я их не перестрою.
Любая идея, что это может быть?
файл журнала ошибок:
2018-01-17T06:26:01.736698Z 892611 [Note] Aborted connection 892611 to db: 'user1' user: 'user1' host: 'localhost' (Got an error reading communication packets)
2018-01-17T10:12:01.228074Z 967251 [Note] Aborted connection 967251 to db: 'user1' user: 'user1' host: 'localhost' (Got an error reading communication packets)
2018-01-17T10:48:04.651854Z 893804 [Note] Aborted connection 893804 to db: 'user1' user: 'user1' host: 'localhost' (Got an error reading communication packets)
2018-01-17T11:48:17.152359Z 1138745 [Note] Aborted connection 1138745 to db: 'user1' user: 'user1' host: 'localhost' (Got timeout reading communication packets)
2018-01-17T14:21:21.893942Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 5706ms. The settings might not be optimal. (flushed=2005 and evicted=0, during the time.)
2018-01-17T16:10:04.688262Z 1299954 [Note] Aborted connection 1299954 to db: 'user1' user: 'user1' host: 'localhost' (Got an error reading communication packets)
2018-01-17T18:43:22.859228Z 1394892 [Note] Aborted connection 1394892 to db: 'mail' user: 'mailadm' host: 'localhost' (Got timeout reading communication packets)
2018-01-17T19:23:25.254960Z 1424505 [Note] Access denied for user 'root'@'localhost' (using password: YES)
2018-01-17T19:33:53.296113Z 1430352 [Note] Aborted connection 1430352 to db: 'reading.service' user: 'reading_website' host: 'localhost' (Got an error reading communication packets)
2018-01-17T19:56:01.129085Z 0 [Note] Giving 149 client threads a chance to die gracefully
2018-01-17T19:56:01.130337Z 0 [Note] Shutting down slave threads
2018-01-17T19:56:03.136533Z 0 [Note] Forcefully disconnecting 42 remaining clients
Обновление: здесь запрошенный статус
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 11 |
| Threads_connected | 112 |
| Threads_created | 8916 |
| Threads_running | 7 |
+-------------------+-------+
4 rows in set (0.04 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'thread_%';
+-------------------+---------------------------+
| Variable_name | Value |
+-------------------+---------------------------+
| thread_cache_size | 16 |
| thread_handling | one-thread-per-connection |
| thread_stack | 262144 |
+-------------------+---------------------------+
3 rows in set (0.01 sec)
mysql> SHOW GLOBAL STATUS LIKE 'uptime%'
-> ;
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| Uptime | 109176 |
| Uptime_since_flush_status | 109176 |
+---------------------------+--------+
2 rows in set (0.01 sec)
Что нужно сделать в разделе my.cnf/ini [mysqld]
thread_cache_size=100 # from 16 to minimize thread thrashing to support ~ 8000 threads created.
Просмотрите содержимое https://forge.typo3.org/issues/19050 и убедитесь, что у вас есть закрытые соединения, если это необходимо. С вашими thread_connected на 112 и только 7 работает, похоже, что не было реализовано, когда клиент сделан. В этом документе также описывается, что PHP (если используется PHP) должен иметь MySQL.allow_persistent = Off в вашей концепции /etc/php5/cgi/php.ini.