Saya baru-baru ini ditingkatkan dari Ubuntu LTS sebelumnya ke Precise dan sekarang mysql menolak untuk memulai. Itu mengeluh tentang hal berikut ketika saya mencoba memulainya:
╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
Dan ini ditampilkan di "/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
Saya telah memeriksa izin pada semua direktori mysql untuk memastikannya memiliki kepemilikan dan saya juga mengganti nama previou ib_logs sehingga bisa membuat ulang mereka. Saya tidak mengerti dengan masalah ini sekarang, setelah melihat hasil google selama 2 jam.
Jawaban:
Setelah memeriksa log saya menemukan kesalahan berikut:
Saya menghapus file-file ini:
di
/var/lib/mysql
Ini menyelesaikan masalah saya setelah restart.
sumber
rm
Perintah ini digunakan untuk Hapus file daripada mengubah nama mereka sejauh yang saya tahu ...ibdata
file berisi data (kecuali jika Anda memiliki file-per-tabel). File ib_logfile adalah log replay yang berisi data untuk transaksi yang mengubah database yang mungkin sedang dalam proses ketika / jika database macet. Jika Anda berhasil mematikan server, menghapus file-file log ini tidak akan merugikan Anda. Jika jatuh, maka Anda membutuhkannya. Tapi ini jawaban yang valid. Jika file my.cnf Anda mengubah opsi innodb_log_file_size dan tidak lagi cocok dengan dua file itu, Anda akan mendapatkan pesan kesalahan yang dinyatakan OP. Menghapus / memindahkan sehingga yang baru bisa dilakukan memperbaikinya.mv ib_logfile0 ib_logfile0.bak && mv ib_logfile1 ib_logfile1.bak
.Jika Anda benar-benar membutuhkan
skip-innodb
(use case: low memory footprint), maka tentu saja Anda tidak perlu berkomentar. Namun, jika InnoDB adalah mesin penyimpanan default, server akan gagal memulai sampai Anda memberi tahu mesin penyimpanan mana yang akan digunakan, misalnyadefault-storage-engine=myisam
untuk MyISAM.Jadi, coba ini:
sumber
default-storage-engine=myisam
pada file /etc/my.cnf di bawah[mysqld]
. Itu berhasil. ThxJika Anda menggunakan MySQL 5.6+ dan ingin menonaktifkan InnoDB, jangan lupa " --default-tmp-storage " atau tidak akan berfungsi:
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb
Anda dapat menambahkan ini ke my.cnf Anda:
hanya untuk memastikan itu akan berhasil.
sumber
default-storage-engine
dandefault-tmp-storage-engine
, terima kasih.Periksa log kesalahan mysql Anda.
Jika log Anda mengatakan (seperti milik saya):
Anda tidak memiliki cukup memori untuk menggunakan ukuran buffer standar 128M
Edit file config /etc/mysql/my.cnf dengan menambahkan sebuah baris untuk menentukan innodb_buffer_pool_size yang lebih kecil.
Simpan file konfigurasi, dan mulai mysql
sumber
Coba 2 hal lagi. 1. Turunkan ukuran kolam penyangga innodb. 2. Edit skrip awal mysql dan tambahkan opsi --innodb.
Saya bertanya-tanya juga apakah paket Anda buggy. Bisakah Anda mencoba versi minor yang berbeda?
Juga, saya menganggap server mysql Anda juga ditingkatkan? Mungkin versi itu rusak? Precise belum final.
sumber
Saya mendapatkan kesalahan ini ketika saya menghapus lokasi yang saya gunakan untuk
tmpdir
. Jika Anda baru saja mengubah Andatmpdir
, Anda mungkin ingin memeriksa bahwa itu adalah lokasi yang valid dan dapat ditulis.sumber