web-dev-qa-db-ja.com

InnoDB:以前に開いたテーブルスペースを開こうとしました

私は数日前から問題に取り組んでいます。私たちのボックスアカウントにあるローカルメディアウィキページは、自分自身を破壊し、オンラインにするために取り組んでいます。 XAMPPコントロールパネルv3.2.1を使用すると、エラーが多かったため、XAMPP(v3.2.2)を更新し、「htdocs」および「mysql/data」ファイルを新しいデータベースに移動することにしました。

最初のエラー:

    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

それが言うように、私はログに行き、これを見つけました:

    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.

今、これは標準エラーのように見えますが、私はそれを修正する方法についてウェブ全体で多くの異なる提案で見ました。それらについて簡単に説明します。

私が最初に試みたのは、ログの提案に従うことでした。

  1. 許可の問題はありませんでした
  2. テーブルが必要かどうかは明確ではありません。OR phpmyadmin/pma__trackingまたはarchive.ibdを削除するかどうか。archive.ibdを削除すると、エラーが発生します。別の.ibdファイルに。
  3. 「innodb_force_recovery = 1」がmy.cnfに追加されたため、多数のエラーが発生しました。

次に気づいたのは、新しいデータベースを作成したときに、phpMyAdmin(localhost/phpMyAdmin)で次のエラーが発生したことです。 phpMyAdmin error

これがすべての問題を引き起こしているかどうかはわかりません。パスワードを=に切り替えるように言われていることがわかりました。新しいデータベースに古いデータフォルダーを入力しているため、このエラーが発生している可能性があります。よく分かりません。

ウェブ上の最初の提案は、次のファイルを削除することでした

\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

2番目:

「ibdata1」を削除してみました

これらのどれも機能していません。

37
dedrumhead

同じ問題がありました。他の人が提案したすべてのソリューションを試しましたが、残念ながら何も機能しませんでした。

Googleでのソリューションの検索に何時間も費やした後、ようやくこれを見つけました

  1. My.ini(LinuxベースのシステムおよびMacではmy.cnf)を開きます
  2. [mysqld]を探します
  3. [mysqld]のすぐ下に挿入innodb_force_recovery = 1
  4. MySQLサービスを開始する
  5. MySQLサービスを停止します
  6. My.iniから行を削除します(innodb_force_recovery = 1)
  7. MySQLサービスを開始する

私の場合は完璧に働きました。

これで問題が解決することを願っています。

184
Nesar

同じエラーが発生しました。これらは私が従った手順です。

  1. \ xampp\mysql\dataのバックアップを取得しました

  2. データフォルダーからすべてのファイルとフォルダーを削除しました除くmysql

  3. XAMPPを終了して、再度開始します。

  4. データベースをdataフォルダーから1つずつ移動します。

6
San

/Applications/XAMPP/xamppfiles/var/mysql/ib_logfile0の名前を/Applications/XAMPP/xamppfiles/var/mysql/ib_logfile0.bkpに変更してください

および/Applications/XAMPP/xamppfiles/var/mysql/ib_logfile1から/Applications/XAMPP/xamppfiles/var/mysql/ib_logfile1.bkp

4
Djanym

MAMP(バージョン> = 4)で上記( Nesarソリューション )を使用するには、最初にMAMP/tmp/mysql内にあるmy.cnfファイルをMAMP/confフォルダーにコピーする必要があります。そうして初めて機能します。

3
Leandro Castro

解決策はMAC 10.11.3 El Capitan用です

  • すべてのランダムファイルを削除します(実際のデータベースフォルダーを除く)
  • ApacheとMySQLを再起動します。
  • これは私のために働いた。

.

3
Tarun Gupta

Mamp Proでも同様の問題がありました。私にとっては、正しい.idbファイルが「Applications/Mamp ...」にないことがわかりました。そのため、エラーログを詳しく見ると、ファイルが「/ライブラリ/ Application Support/appsolute/MAMP PRO/db」にあることがわかりました。私はもう使用していないデータベースに問題があったので、対応するフォルダーを削除しようとしましたが、うまくいきました。次のステップは、作成者が既に言及したファイルを削除することでした。

  • 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

しかし、前述のように、データベースフォルダを削除することは非常にうまくいきました。

2
haeki

Tgrの答えは適切に見えます。許可などに関するメッセージは一般的なものです。実際のエラーメッセージは

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

Wikiデータベースとphpmyadminデータベースは、どういうわけか同じテーブルスペースIDになりました。他方が存在していなければ、それぞれが正常に機能します。現在は、何らかの方法で番号を変更する必要があります。

0
Nemo

「以前に開いたテーブルスペースを開こうとしました。」 -それは次のいずれかの匂いがします:

  • MySQLのコピーが2つあり、両方とも実行しようとしています。
  • Windowsは、MySQLのファイルの1つで「オープン」をリリースできませんでした。私はその問題を見ていました。 Windowsを再起動することで回復しました。後でWindowsをアップグレードします。
0
Rick James

リカバリデータベース構造を使用した後、同じ問題が発生しました( http://zadpen.com/20-restore-lost-data-in-mysql-using-innodb-engine-without-file-ibdata1.html )archive.ibmファイルを削除し、mysqlを起動します。次に、データベースにアーカイブテーブルを作成します。

0
morteza khadem

My.cnfを適切に編集することが不可能であることがわかったため、MAMP Proについて上記で説明した問題の別の解決策があります。

InnoDBがクラッシュしている場合は、エラーメッセージでトラブルの原因となっているDBを見つけます。ここにあります phpmyadmin/pma__trackingしたがって、テーブルはpma_拡張子を持つテーブルです。

次に、/Library/Application Support/appsolute/MAMP PRO/db/mysqlそして、DBの原因となっている問題にちなんで名付けられたフォルダーを削除します。

MAMPサーバーを再起動します。正常に再起動したら、サーバーを再度停止し、DBフォルダーを元の場所に戻し、サーバーを再起動できます。すべてが再びうまくいくはずです。

0
Lou