MySQL не запускается из-за init_file '/var/lib/mysql/.-.work.XNDQaWRXUvLyEEJx'

MySQL не запускается из-за init_file '/var/lib/mysql/.-.work.XNDQaWRXUvLyEEJx'

Я пытаюсь выяснить, почему MySQL продолжает отключаться каждую ночь. В частности, MySQL перезапускается каждую ночь (также неизвестная причина), но не может запуститься снова и прерывается. В некоторые дни он успешно перезапускается, и все работает, но в большинстве дней это не так, поэтому мне пришлось написать скрипт для его перезапуска каждое утро. Около 8-9 утра по UTC каждое утро mySQL перезапускается дважды, но при втором перезапуске дает сбой. Он не запускается, потому что не может найти какой-то файл инициализации .-.work, и я не уверен, почему.

Каждую ночь я замечал два случая с MySQL:

  1. Перезапускается успешно. Но будет говорить, что он выполняет файл init или не выполняет вообще.
  2. Перезапуски не удаются. В этом случае это всегда происходит из-за того, что не удается найти файл init.

Краткая информация:

  • MySQL перезапускается каждое утро с 8 до 9 утра по Гринвичу.
  • Успешный перезапуск MySQL: Стоп > Запуск > Стоп > Запуск
  • Сбой перезапуска MySQL: Остановка > Запуск (Прерывание/сбой) > Остановка

Дополнительная информация:

  • CentOS 6.8
  • MySQL 5.7.17

Сбой MySQL из-за файла инициализации:

2018-02-25T08:45:09.782610Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-02-25T08:45:09.784928Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.17-log) starting as process 11221 ...
2018-02-25T08:45:09.798909Z 0 [Note] InnoDB: PUNCH HOLE support available
2018-02-25T08:45:09.798938Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-02-25T08:45:09.798960Z 0 [Note] InnoDB: Uses event mutexes
2018-02-25T08:45:09.798971Z 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
2018-02-25T08:45:09.798992Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
2018-02-25T08:45:09.799007Z 0 [Note] InnoDB: Using Linux native AIO
2018-02-25T08:45:09.799444Z 0 [Note] InnoDB: Number of pools: 1
2018-02-25T08:45:09.799600Z 0 [Note] InnoDB: Using CPU crc32 instructions
2018-02-25T08:45:09.801717Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2018-02-25T08:45:09.816978Z 0 [Note] InnoDB: Completed initialization of buffer pool
2018-02-25T08:45:09.821022Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2018-02-25T08:45:09.846219Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2018-02-25T08:45:10.072617Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2018-02-25T08:45:10.072727Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2018-02-25T08:45:10.093784Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2018-02-25T08:45:10.094893Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2018-02-25T08:45:10.094908Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2018-02-25T08:45:10.095372Z 0 [Note] InnoDB: Waiting for purge to start
2018-02-25T08:45:10.145560Z 0 [Note] InnoDB: 5.7.17 started; log sequence number 28375479994
2018-02-25T08:45:10.145846Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
2018-02-25T08:45:10.145941Z 0 [Note] Plugin 'FEDERATED' is disabled.
2018-02-25T08:45:10.162499Z 0 [Note] InnoDB: Buffer pool(s) load completed at 180225  1:45:10
2018-02-25T08:45:10.181824Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
2018-02-25T08:45:10.186627Z 0 [Warning] CA certificate ca.pem is self signed.
2018-02-25T08:45:10.188420Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2018-02-25T08:45:10.188488Z 0 [Note] IPv6 is`enter code here` not available.
2018-02-25T08:45:10.188521Z 0 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
2018-02-25T08:45:10.188545Z 0 [Note] Server socket created on IP: '0.0.0.0'.
2018-02-25T08:45:10.304549Z 0 [ERROR] Incorrect definition of table performance_schema.replication_connection_status: expected column 'RECEIVED_TRANSACTION_SET' at position 7 to have type longtext, found type text.
2018-02-25T08:45:10.305926Z 0 [ERROR] Incorrect definition of table performance_schema.replication_group_member_stats: expected column 'COUNT_TRANSACTIONS_ROWS_VALIDATING' at position 6, found 'COUNT_TRANSACTIONS_VALIDATING'.
2018-02-25T08:45:10.311827Z 0 [Note] Event Scheduler: Loaded 0 events
2018-02-25T08:45:10.311944Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check.
2018-02-25T08:45:10.311957Z 0 [Note] Beginning of list of non-natively partitioned tables
2018-02-25T08:45:10.880682Z 0 [Note] End of list of non-natively partitioned tables
2018-02-25T08:45:10.880729Z 0 [Note] Execution of init_file '/var/lib/mysql/.-.work.gjy3b8Gov_chCz89' started.
2018-02-25T08:45:10.880806Z 0 [ERROR] /usr/sbin/mysqld: File '/var/lib/mysql/.-.work.gjy3b8Gov_chCz89' not found (Errcode: 2 - No such file or directory)
2018-02-25T08:45:10.880816Z 0 [ERROR] Aborting

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

(Изменить) Опубликовано здесь повторно для лучшего соответствия требованиям темы.

(Редактирование 2) Вот файл my.cnf:

    [mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
log_timestamps = UTC

general_log
general_log_file = /var/log/general_query.log
log_error_verbosity = 3
max_allowed_packet = 256M
slow_query_log_file = /var/log/slow-queries.log
slow-query-log

решение1

Похоже, одна из внутренних таблиц настроена неправильно:

Incorrect definition of table performance_schema.replication_connection_status: expected column 'RECEIVED_TRANSACTION_SET' at position 7 to have type longtext, found type text.

Я бы посоветовал mysql сделать дамп всех имеющихся у вас баз данных и сбросить пользователей/разрешения с помощью

mysql -u root -p password --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql ${MYSQL_CONN} --skip-column-names -A | sed 's/$/;/g' > MySQLUserGrants.sql

очистите пакет msyql, переустановите mysql, а затем восстановите базы данных/пользователей/разрешения.

Связанный контент