web-dev-qa-db-ja.com

不明/サポートされていないストレージエンジン:InnoDB | MySQL Ubuntu

最近、以前の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ディレクトリのアクセス権をチェックして、それが所有権を持っていることを確認し、それらを再作成できるように、前のib_logsの名前も変更しました。 Googleの検索結果を2時間調べたところ、この問題が発生しているところがまったくわかりません。

45
Garrett

ログを確認した後、次のエラーが見つかりました。

[ERROR] Unknown/unsupported storage engine: InnoDB

これらのファイルを削除しました:

rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1 

/var/lib/mysql

これにより、再起動後の問題が解決しました。

35
Vinay

本当に必要な場合skip-innodb(ユースケース:低メモリフットプリント)、もちろん、コメントアウトする必要はありません。ただし、InnoDBがデフォルトのストレージエンジンである場合、代わりに使用するストレージエンジンを指定するまで、サーバーは起動しません。 default-storage-engine=myisam for MyISAM。

だから、これを試してください:

$ Sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam
23

MySQL 5.6+を使用していて、InnoDBを無効にする場合は、「-default-tmp-storage」を忘れないでください。そうしないと、作業:

InnoDBを無効にするには、-innodb = OFFまたは--skip-innodbを使用します。この場合、デフォルトのストレージエンジンはInnoDBであるため、-default-storage-engineと--default-tmp-storage-engineを使用してデフォルトを永続的エンジンとその他のエンジンの両方に設定しない限り、サーバーは起動しません。 TEMPORARYテーブル。

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb

これをmy.cnfに追加できます。

[mysqld] 
innodb=OFF 
ignore-builtin-innodb 
skip-innodb
default-storage-engine=myisam 
default-tmp-storage-engine=myisam

それが機能することを確認するためだけに。

12
Juan

Mysqlエラーログを確認します。

tail -100 /var/log/mysql/error.log

あなたのログが(私のように)言っているなら:

InnoDB:バッファープールの初期化、サイズ= 128.0M 
 InnoDB:mmap(137363456バイト)が失敗しました。 errno 12 
 [エラー] InnoDB:バッファプールにメモリを割り当てられません

デフォルトのバッファサイズである128Mを使用するのに十分なメモリがない

設定ファイル/ etc/mysql/my.cnfを編集して、より小さなinnodb_buffer_pool_sizeを指定する行を追加します。

# make the buffer pool smaller than 128M since we only have 1 GB of total RAM
innodb_buffer_pool_size = 16M

設定ファイルを保存して、mysqlを起動します

Sudo service mysql start
8
user2219975

tmpdirに使用している場所を削除すると、このエラーが発生しました。最近tmpdirを変更した場合は、それが有効で書き込み可能な場所であることを確認してください。

0
Jeff

さらに2つ試してください。 1. innodbバッファープールサイズを小さくします。 2. mysqlの初期スクリプトを編集し、-innodbオプションを追加します。

また、パッケージにバグがあるかどうかもわかります。別のマイナーバージョンを試していただけませんか?

また、mysqlサーバーもアップグレードされていると思いますか?多分そのバージョンは壊れていますか?正確はまだ最終的なものではありません。

0
johnshen64