Mysql/InnoDB перестают работать на Linode Server
Мой сервер MySQL не запускался. Когда я проверяю файл error.log, я нашел это. Подскажите, пожалуйста, что мне делать?
151113 6:59:53 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
151113 6:59:53 [Note] Plugin 'FEDERATED' is disabled.
151113 6:59:53 InnoDB: The InnoDB memory heap is disabled
151113 6:59:53 InnoDB: Mutexes and rw_locks use GCC atomic builtins
151113 6:59:53 InnoDB: Compressed tables use zlib 1.2.3.4
151113 6:59:53 InnoDB: Initializing buffer pool, size = 128.0M
151113 6:59:53 InnoDB: Completed initialization of buffer pool
InnoDB: Error: checksum mismatch in data file ./ibdata1
151113 6:59:53 InnoDB: Could not open or create data files.
151113 6:59:53 InnoDB: If you tried to add new data files, and it failed here,
151113 6:59:53 InnoDB: you should now edit innodb_data_file_path in my.cnf back
151113 6:59:53 InnoDB: to what it was, and remove the new ibdata files InnoDB created
151113 6:59:53 InnoDB: in this failed attempt. InnoDB only wrote those files full of
151113 6:59:53 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
151113 6:59:53 InnoDB: remove old data files which contain your precious data!
151113 6:59:53 [ERROR] Plugin 'InnoDB' init function returned error.
151113 6:59:53 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
151113 6:59:53 [ERROR] Unknown/unsupported storage engine: InnoDB
151113 6:59:53 [ERROR] Aborting
151113 6:59:53 [Note] /usr/sbin/mysqld: Shutdown complete
1 ответ
Я только что имел это, первоначально представлял себя как " mysql возрождается слишком быстро" ошибка в dmesg
журналы.
Из прочтения в другом месте я проследил это до того, что вы нашли, и, как мне кажется, выяснил, что это указывает на какое-то повреждение в файлах метаданных InnoDB. InnoDB делает такие вещи, как обеспечение целостности транзакции / отката и целостности первичного внешнего ключа. Это то, о чем вас предупреждает ошибка "несоответствие контрольной суммы".
Вы не говорите, как вы запускаете mysqld, но, возможно, вы используете какой-либо вариант либо /etc/init.d/mysqld start
или же service mysqld start
, Вместо этого запустите демон явно как команду:
sudo /usr/sbin/mysqld --innodb_force_recovery 0
и, пока вы знаете, почему вы это делаете, постепенно увеличивайте нулевое значение --innodb_force_recovery
пока процесс не начнется.
Предупреждение: параметр innodb_force_recovery определяет, насколько серьезно mysqld будет пытаться "принудительно исправить" ошибку контрольной суммы в хранилище InnoDB. Таким образом, вы можете усугубить проблему или потребовать более поздней перестройки индекса, если принудительно исправите здесь большое число, потому что InnoDB будет делать все более и более радикальные вещи, чтобы попытаться исправить себя.
Каждый раз, когда вам не удается перезагрузить mysqld
с конкретным номером, например 2
, вы должны искать сообщения об ошибках, которые вы получаете, прежде чем увеличивать его до 3
так что вы можете быть уверены, что делаете все правильно. Я не эксперт по каждой ошибке, которую вы можете получить, поэтому я не могу предоставить обратную связь для каждого исключительного условия: все, что я говорю, это используйте --innodb_force_recovery
с осторожностью!