2017-03-02 2 views
4

私は現地で開発中で、Mamp Proを使用しています。 基本的にMySQLの起動に問題があります。エラーログのエラーメッセージは次のとおりです。MySQLのトラブル - InnoDB:オペレーティングシステムエラー番号2のファイル操作

これを解決する方法はありますか?

2017-03-02 00:39:08 9518 [Note] Plugin 'FEDERATED' is disabled. 
2017-03-02 00:39:08 9518 [Note] InnoDB: Using atomics to ref count buffer pool pages 
2017-03-02 00:39:08 9518 [Note] InnoDB: The InnoDB memory heap is disabled 
2017-03-02 00:39:08 9518 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 
2017-03-02 00:39:08 9518 [Note] InnoDB: Memory barrier is not used 
2017-03-02 00:39:08 9518 [Note] InnoDB: Compressed tables use zlib 1.2.8 
2017-03-02 00:39:08 9518 [Note] InnoDB: Using CPU crc32 instructions 
2017-03-02 00:39:08 9518 [Note] InnoDB: Initializing buffer pool, size = 128.0M 
2017-03-02 00:39:08 9518 [Note] InnoDB: Completed initialization of buffer pool 
2017-03-02 00:39:08 9518 [Note] InnoDB: Highest supported file format is Barracuda. 
2017-03-02 00:39:08 9518 [Note] InnoDB: Log scan progressed past the checkpoint lsn 663573438 
2017-03-02 00:39:08 9518 [Note] InnoDB: Database was not shutdown normally! 
2017-03-02 00:39:08 9518 [Note] InnoDB: Starting crash recovery. 
2017-03-02 00:39:08 9518 [Note] InnoDB: Reading tablespace information from the .ibd files... 
2017-03-02 00:39:08 9518 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace affiliate_blog_1_old/wpab1_7_woocommerce_order_itemmeta uses space ID: 367 at filepath: ./affiliate_blog_1_old/wpab1_7_woocommerce_order_itemmeta.ibd. Cannot open tablespace freshwp/freshwp_wfblocksadv which uses space ID: 367 at filepath: ./freshwp/freshwp_wfblocksadv.ibd 
2017-03-02 00:39:08 7fff7b652000 InnoDB: Operating system error number 2 in a file operation. 
InnoDB: The error means the system cannot find the path specified. 
InnoDB: If you are installing InnoDB, remember that you must create 
InnoDB: directories yourself, InnoDB does not create them. 
InnoDB: Error: could not open single-table tablespace file ./freshwp/freshwp_wfblocksadv.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. 
170302 00:39:08 mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended 

上記のコードから、エラーがあると思われる:

2017年3月2日午前0時39分08秒9518 [ERROR] InnoDBは:以前に開かれた表領域をオープンしようとしました。ファイルパスで367 :

前の表領域affiliate_blog_1_old/wpab1_7_woocommerce_order_itemmeta は、スペースIDを使用しています./affiliate_blog_1_old/wpab1_7_woocommerce_order_itemmeta.ibdを。

スペースのIDを使用して開いた表領域freshwp/freshwp_wfblocksadvすることはできません:ファイルパスで367 は:

+2

これは本当に素晴らしいエラーメッセージです。何が起こったのか、そしてなぜそれが問題を解決するかについての3つの選択肢を提供します。あなたはそれらを試しましたか? (場合によっては、データディレクトリのコピーを最初に作成してください)。 – Solarflare

+0

これ以前に何が起こったのですか?クラッシュやデータファイルに関する不注意な改造があったようです。 –

+0

@Solarflareはい "innodb_force_recovery> 0"を追加してオプション3を試しましたが、何もしませんでした。他の解決策は...まあ私はそれらを実行することが快適ではない/どのようにわからない。 – Treb

答えて

16

最近MAMP/wのローカル開発同様の問題に遭遇しました./freshwp/freshwp_wfblocksadv.ibd。ログには「データベースは正常にシャットダウンされていませんでした」、その後の同様のエラーメッセージ、および同様の提案が含まれています。以下は、それを解決する手順は次のとおりです。

  1. 停止サーバMAMP
  2. 移動し、あなたのWP DBの.idbファイルへ - MAMPを使用している場合、どこかに〜/ライブラリ/ Application Support/appsolute/MAMP PROのようでなければなりません/ db/mysql56/[yourdbname]/
  3. .idbファイル名の末尾に.bk(または認識できない拡張子)を追加してください。
  4. MAMPのサーバを起動してください。ログを見ると、.idbファイルが見つからないというエラーメッセージが表示されますが、少なくともMySQLは起動する必要があります。
  5. MAMP
  6. で停止サーバ
  7. ドロップ.bk(またはものは何でも使用).idbファイル名から
  8. スタートサーバMAMPで - この時点で、すべて設定する必要があります。

DBでの作業がまだ終わっていないので、MAMPを再インストールしたりデータを失うことはありません。あなたの状況が異なる場合、dbディレクトリを.zipファイルに最初にバックアップするのが最善です。運がなければ後で何かを試すことができます。

これが役に立ちます。

....

UPDATE:
は持っているが、それはより速く、以下に手順3と6を交換することが分かっ:
3.どこかの便利な一時フォルダを作成します。すべての.idbファイルを選択し、そのフォルダに移動します。
6.手順2の元のフォルダにファイルを戻します。 ....

+1

.idbの名前を変更する代わりに、ステップ6でそれを戻します。あなたが10以上のテーブルを持っている場合。 :) – Cyber

0

これは美しく機能しました。私はちょうどフォルダーからもファイルを移動しました。 MAMPを使用しているあなたの場合は、データベースファイルが隠されている可能性があります。私はこのコマンドで端末に隠しファイルを表示しました。

デフォルトはcom.appleです。ファインダAppleShowAllFiles -boolean true; killall Finder

もう一度非表示にしてください... defaults write com.apple.finder AppleShowAllFiles -boolean false; killall Finder

+0

これは質問の答えではないようです。単なるコメントであれば、オリジナルの質問にコメントとして添付できますか? –