Я недавно обновил предыдущую версию LTS Ubuntu до Precise и теперь mysql отказывается запускаться. Когда я пытаюсь его запустить, он жалуется на следующее:
╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
И это показано в "/var/log/mysql/error.log":
120415 23:01:09 [Note] Plugin 'InnoDB' is disabled.
120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled.
120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB
120415 23:01:09 [ERROR] Aborting
120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete
Я проверил разрешения на все каталоги mysql, чтобы убедиться, что он принадлежит, и я также переименовал previou ib_logs, чтобы он мог их переделать. Я только сейчас не понимаю, где с этой проблемой, после просмотра результатов Google в течение 2 часов.
Ответы:
После проверки логов я обнаружил следующую ошибку:
Я удалил эти файлы:
в
/var/lib/mysql
Это решило мою проблему после перезагрузки.
источник
rm
команда используется для удаления файлов , а не переименовывать их, насколько я знаю ...ibdata
файл содержит данные (если у вас нет файла для каждой таблицы). Файлы ib_logfile - это журналы воспроизведения, содержащие данные для транзакций, изменяющих базу данных, которые могли быть в процессе, когда / если база данных потерпела крах. Если вы смогли успешно завершить работу сервера, удаление этих файлов журнала не повредит вам. Если он разбился, то они вам нужны. Но это верный ответ. Если ваш файл my.cnf изменяет параметр innodb_log_file_size и он больше не соответствует этим двум файлам, вы получите сообщение об ошибке, которое указывает OP. Удаление / перемещение, чтобы новые могли быть сделаны, исправляет это.mv ib_logfile0 ib_logfile0.bak && mv ib_logfile1 ib_logfile1.bak
.Если вам действительно нужно
skip-innodb
(случай использования: низкий объем памяти), то, конечно, вам не нужно это комментировать. Однако, если InnoDB является механизмом хранения по умолчанию, сервер не запустится, пока вы не скажете ему, какой механизм хранения использовать вместо этого, например,default-storage-engine=myisam
для MyISAM.Итак, попробуйте это:
источник
default-storage-engine=myisam
в файл /etc/my.cnf в[mysqld]
. Это добилось цели. СпасибоЕсли вы используете MySQL 5.6+ и хотите отключить InnoDB, не забудьте " --default-tmp-storage ", иначе он не будет работать:
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb
Вы можете добавить это в ваш my.cnf:
просто чтобы убедиться, что это сработает.
источник
default-storage-engine
иdefault-tmp-storage-engine
, спасибо.Проверьте журнал ошибок MySQL.
Если ваш журнал говорит (как мой сделал):
У вас недостаточно памяти для использования размера буфера по умолчанию 128M
Отредактируйте файл конфигурации /etc/mysql/my.cnf, добавив строку, чтобы указать меньший innodb_buffer_pool_size.
Сохраните файл конфигурации и запустите mysql
источник
Попробуйте еще 2 вещи. 1. Уменьшите размер пула буферов innodb. 2. Отредактируйте исходный скрипт mysql и добавьте опцию --innodb.
Интересно также, если ваш пакет глючит. Не могли бы вы попробовать другую минорную версию?
Кроме того, я полагаю, ваш сервер mysql также был обновлен? Может быть, эта версия сломана? Точное еще не окончательно.
источник
Я получил эту ошибку, когда я удалил местоположение, для которого я использую
tmpdir
. Если вы недавно изменили свойtmpdir
, вы можете проверить, что это допустимое, доступное для записи место.источник