最近、以前の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時間調べたところ、この問題が発生しているところがまったくわかりません。
ログを確認した後、次のエラーが見つかりました。
[ERROR] Unknown/unsupported storage engine: InnoDB
これらのファイルを削除しました:
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1
/var/lib/mysql
これにより、再起動後の問題が解決しました。
本当に必要な場合skip-innodb
(ユースケース:低メモリフットプリント)、もちろん、コメントアウトする必要はありません。ただし、InnoDBがデフォルトのストレージエンジンである場合、代わりに使用するストレージエンジンを指定するまで、サーバーは起動しません。 default-storage-engine=myisam
for MyISAM。
だから、これを試してください:
$ Sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam
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
それが機能することを確認するためだけに。
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
tmpdir
に使用している場所を削除すると、このエラーが発生しました。最近tmpdir
を変更した場合は、それが有効で書き込み可能な場所であることを確認してください。
さらに2つ試してください。 1. innodbバッファープールサイズを小さくします。 2. mysqlの初期スクリプトを編集し、-innodbオプションを追加します。
また、パッケージにバグがあるかどうかもわかります。別のマイナーバージョンを試していただけませんか?
また、mysqlサーバーもアップグレードされていると思いますか?多分そのバージョンは壊れていますか?正確はまだ最終的なものではありません。