Сбой сервера mysql и сообщения о проблемах с таблицей

У меня есть большой форум phpBB, работающий на сервере Debian. В течение последних нескольких месяцев у меня периодически происходит сбой mySQL (примерно каждые 10-14 дней). Это проявляется в виде ошибки «слишком много подключений 1040». Если я перезапускаю службу, я получаю сообщение об ошибке, что одна из таблиц phpbb «помечена как поврежденная, и последнее (автоматическое?) восстановление не удалось [144]».

Если я вручную войду в mysql и запущу REPAIR для таблицы, это исправит ситуацию - восстановление займет много времени - в рассматриваемой таблице более 1,5 млн записей. После этого все идет нормально, пока все не повторяется через 10 дней.

Если я запускаю systemctl status mysqld, я вижу несколько строк, говорящих:

Jun 05 05:20:01 servername mysqld[1105]: 2020-06-05  5:20:01 140590520212224 [ERROR] mysqld: Table './phpbb_posts' is marked as crashed and last (automatic?) repair failed
Jun 05 05:20:01 servername mysqld[1105]: 2020-06-05  5:20:01 140590520212224 [ERROR] mysqld: Table 'phpbb_posts' is marked as crashed and last (automatic?) repair failed

но, как говорится, дела идут нормально.

Немного поискав в Google, кажется, что служба mysql отключается и работает:

cd /var/lib/mysql/$DATABASE_NAME
myisamchk -r $TABLE_NAME
myisamchk -r -v -f $TABLE_NAME

вполне могли бы исправить положение. Я рад попробовать это - предположительно, я просто заранее создаю резервную копию соответствующего файла DATABASE_NAME на случай, если что-то пойдет не так? В каком случае я могу просто вернуть его на место? Предположительно, команда будет выполняться долго, учитывая размер таблицы?

Прежде чем я попробую это, я очень хотел бы понять, что произошло и что будет делать это исправление. Если кто объяснит, буду очень признателен :)

Заранее спасибо!


person user3204476    schedule 05.06.2020    source источник
comment
сколько вы установили max_connections ? SHOW VARIABLES LIKE "max_connections";   -  person Max Muster    schedule 06.06.2020
comment
Ставить на 200 - это хорошо или плохо?!   -  person user3204476    schedule 09.06.2020
comment
зависит от того, сколько у вас оперативной памяти, это может быть много. установите его на 100 и проверьте его, если он более стабилен.   -  person Max Muster    schedule 09.06.2020


Ответы (1)


Вы нашли одну важную причину перейти с ENGINE=MyISAM на ENGINE=InnoDB.

http://mysql.rjweb.org/doc.php/myisam2innodb

person Rick James    schedule 07.06.2020