pengembangan-web-mp.com

InnoDB: Mencoba untuk membuka tablespace yang sebelumnya dibuka

Saya telah mengerjakan masalah selama beberapa hari sekarang. Halaman mediawiki lokal kami yang berada di akun kotak kami, menghancurkan dirinya sendiri dan kami telah berupaya mendapatkannya secara online. Menggunakan XAMPP Control Panel v3.2.1, kesalahannya sangat banyak sehingga kami memutuskan untuk memperbarui XAMPP (v3.2.2) dan memindahkan file 'htdocs' dan 'mysql/data' ke basis data baru.

Kesalahan pertama: 

    9:50:21 AM  [mysql]     Attempting to start MySQL app...
    9:50:22 AM  [mysql]     Status change detected: running
    9:50:22 AM  [mysql]     Status change detected: stopped
    9:50:22 AM  [mysql]     Error: MySQL shutdown unexpectedly.
    9:50:22 AM  [mysql]     This may be due to a blocked port, missing dependencies, 
    9:50:22 AM  [mysql]     improper privileges, a crash, or a shutdown by another method.
    9:50:22 AM  [mysql]     Press the Logs button to view error logs and check
    9:50:22 AM  [mysql]     the Windows Event Viewer for more clues
    9:50:22 AM  [mysql]     If you need more help, copy and post this
    9:50:22 AM  [mysql]     entire log window on the forums

Seperti yang dikatakan, saya kemudian pergi ke log dan menemukan ini:

    2015-11-20 09:50:22 11f8 InnoDB: Warning: Using      innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
    2015-11-20  9:50:22 4600 [Note] InnoDB: Using mutexes to ref count buffer pool pages
    2015-11-20  9:50:22 4600 [Note] InnoDB: The InnoDB memory heap is disabled
    2015-11-20  9:50:22 4600 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
    2015-11-20  9:50:22 4600 [Note] InnoDB: Memory barrier is not used
    2015-11-20  9:50:22 4600 [Note] InnoDB: Compressed tables use zlib 1.2.3
    2015-11-20  9:50:22 4600 [Note] InnoDB: Not using CPU crc32 instructions
    2015-11-20  9:50:22 4600 [Note] InnoDB: Initializing buffer pool, size = 16.0M
    2015-11-20  9:50:22 4600 [Note] InnoDB: Completed initialization of buffer pool
    2015-11-20  9:50:22 4600 [Note] InnoDB: Highest supported file format is Barracuda.
    2015-11-20  9:50:22 4600 [Note] InnoDB: The log sequence numbers 1665234 and 1665234 in ibdata files do not match the log sequence number 50125498 in the ib_logfiles!
    2015-11-20  9:50:22 4600 [Note] InnoDB: Database was not shutdown normally!
    2015-11-20  9:50:22 4600 [Note] InnoDB: Starting crash recovery.
    2015-11-20  9:50:22 4600 [Note] InnoDB: Reading tablespace information from the .ibd files...
    2015-11-20  9:50:22 4600 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace phpmyadmin/pma__tracking uses space ID: 21 at filepath: .\phpmyadmin\pma__tracking.ibd. Cannot open tablespace wiki/archive which uses space ID: 21 at filepath: .\wiki\archive.ibd
    InnoDB: Error: could not open single-table tablespace file .\wiki\archive.ibd
    InnoDB: We do not continue the crash recovery, because the table may become
    InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
    InnoDB: To fix the problem and start mysqld:
    InnoDB: 1) If there is a permission problem in the file and mysqld cannot
    InnoDB: open the file, you should modify the permissions.
    InnoDB: 2) If the table is not needed, or you can restore it from a backup,
    InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
    InnoDB: crash recovery and ignore that table.
    InnoDB: 3) If the file system or the disk is broken, and you cannot remove
    InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
    InnoDB: and force InnoDB to continue crash recovery here.

Sekarang ini terlihat seperti kesalahan standar yang saya lihat dengan banyak saran berbeda di seluruh web tentang cara memperbaikinya. Saya akan membahasnya sebentar.

Hal pertama yang saya coba adalah mengikuti saran di log.

  1. Itu bukan masalah izin 
  2. Tidak jelas apakah saya membutuhkan tabel atau tidak, OR apakah akan menyingkirkan phpmyadmin/pma__tracking atau archive.ibd. Ketika saya menyingkirkan archive.ibd, kesalahan hanya melewati ke file .ibd lain.
  3. 'innodb_force_recovery = 1' ditambahkan ke my.cnf dan ini menyebabkan banyak kesalahan. 

Hal berikutnya yang saya perhatikan adalah bahwa ketika kami membangun database baru, saya mendapatkan kesalahan ini di phpMyAdmin saya (localhost/phpMyAdmin): kesalahan phpMyAdmin

Saya tidak yakin apakah ini menyebabkan semua masalah saya atau tidak. Saya menemukan bahwa orang mengatakan untuk mengganti kata sandi ke = ''. Kesalahan ini mungkin terjadi karena saya memasukkan folder data lama di database baru. Saya tidak yakin.

Saran pertama di web adalah menghapus file-file berikut dari 

\mysql\data:
    innodb_index_stats.frm
    innodb_index_stats.ibd 
    innodb_table_stats.frm 
    innodb_table_stats.ibd 
    slave_master_info.ibd 
    slave_relay_log_info.frm 
    slave_relay_log_info.ibd 
    slave_worker_info.frm 
    slave_worker_info.ibd

Yang ke-2:

Saya sudah mencoba menghapus 'ibdata1'

Tidak ada yang berhasil.

35
dedrumhead

Saya memiliki masalah yang sama. Saya mencoba semua solusi yang diusulkan orang lain, dan sayangnya tidak ada yang berhasil.

Setelah menghabiskan berjam-jam mencari solusi di Google saya akhirnya menemukan ini

  1. Buka my.ini (my.cnf di sistem berbasis Linux dan Mac) 
  2. Cari [mysqld]
  3. Tepat di bawah [mysqld] masukkan innodb_force_recovery = 1
  4. Mulai Layanan MySQL
  5. Hentikan Layanan MySQL
  6. Hapus baris dari my.ini (innodb_force_recovery = 1)
  7. Mulai Layanan MySQL

Bekerja sempurna dalam kasus saya.

Saya harap ini akan menyelesaikan masalah Anda.

165
Nesar

Saya mendapat kesalahan yang sama. Ini adalah langkah-langkah yang saya ikuti.

  1. Mengambil cadangan data\xampp\mysql \

  2. Menghapus semua file dan folder dari folder data kecuali mysql

  3. Keluar dan mulai XAMPP lagi.

  4. Pindahkan database dari folder data satu per satu.

5
San

coba ganti nama /Applications/XAMPP/xamppfiles/var/mysql/ib_logfile0 menjadi /Applications/XAMPP/xamppfiles/var/mysql/ib_logfile0.bkp

dan /Applications/XAMPP/xamppfiles/var/mysql/ib_logfile1 ke /Applications/XAMPP/xamppfiles/var/mysql/ib_logfile1.bkp

4
Djanym

Untuk menggunakan solusi ( Nesar di atas ) di MAMP (versi> = 4), Anda harus terlebih dahulu menyalin file my.cnf yang ada di dalam MAMP/tmp/mysql ke folder MAMP/conf. Hanya dengan begitu ia akan bekerja.

3
Leandro Castro

Solusi untuk MAC 10.11.3 El Capitan

  • Hapus semua file acak (kecuali folder basis data yang sebenarnya) 
  • Mulai ulang Apache dan MySQL.
  • Ini berhasil untuk saya.

This worked for me.

3
Tarun Gupta

Saya punya masalah serupa dengan Mamp Pro. Bagi saya ternyata file .idb yang benar tidak terletak di "Aplikasi/Mamp ...". Jadi melihat lebih dekat pada error-log itu menunjukkan kepada saya file-file itu berada di "/ Library/Aplikasi Dukungan/appsolute/MAMP PRO/db". Karena saya mempunyai masalah dengan database yang tidak saya gunakan lagi, saya hanya mencoba menghapus folder yang sesuai dan berhasil. Langkah selanjutnya adalah menghapus file yang telah disebutkan oleh penulis.

  • innodb_index_stats.frm
  • innodb_index_stats.ibd 
  • innodb_table_stats.frm 
  • innodb_table_stats.ibd 
  • slave_master_info.ibd 
  • slave_relay_log_info.frm 
  • slave_relay_log_info.ibd 
  • slave_worker_info.frm 
  • slave_worker_info.ibd

Tetapi seperti yang disebutkan menghapus databasefolder bekerja dengan baik.

2
haeki

Jawaban Tgr terlihat tepat. Pesan tentang izin dll adalah pesan umum; pesan kesalahan sebenarnya adalah

2015-11-20 9:50:22 4600 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace phpmyadmin/pma__tracking uses space ID: 21 at filepath: .\phpmyadmin\pma__tracking.ibd. Cannot open tablespace wiki/archive which uses space ID: 21 at filepath: .\wiki\archive.ibd

Database wiki Anda dan database phpmyadmin Anda berakhir dengan ID tablespace yang sama. Masing-masing akan bekerja dengan baik jika yang lain tidak hadir; seperti sekarang, Anda harus memberi nomor baru pada salah satu dari mereka.

0
Nemo

"Mencoba untuk membuka tablespace yang sebelumnya dibuka." - Baunya seperti ini:

  • Ada dua salinan MySQL dan keduanya berusaha dijalankan.
  • Windows gagal merilis 'terbuka' di salah satu file MySQL. Saya terbiasa melihat masalah itu. Itu disembuhkan dengan me-reboot Windows; nanti dengan memutakhirkan Windows. 
0
Rick James

Saya memiliki masalah yang sama, setelah menggunakan struktur pemulihan database ( http://zadpen.com/20-restore-lost-data-in-mysql-using-innodb-engine-without-file-ibdata1.html ) Saya menghapus file archive.ibm dan memulai mysql . Lalu membuat tabel arsip dalam database.

0
morteza khadem

Solusi lain untuk masalah yang dijelaskan di atas untuk MAMP Pro, karena saya merasa tidak mungkin mengedit my.cnf dengan benar:

Saat InnoDB mogok, temukan pesan kesalahan, DB yang menyebabkan masalah. Ini dia phpmyadmin/pma__tracking jadi tabelnya adalah yang memiliki ekstensi pma_.

Lalu buka /Library/Application Support/appsolute/MAMP PRO/db/mysql dan hapus folder yang dinamai setelah masalah yang menyebabkan DB.

Restart server MAMP Anda . Setelah Anda memulai kembali dengan sukses, Anda dapat menghentikan server lagi, meletakkan kembali folder DB di tempatnya dan mulai server lagi. Semuanya harus baik kembali.

0
Lou