.Frm ファイル積 ibd だけが利用できる場合、MySQL のテーブルを回復します。

解決する方法 “Mysql のエラー #1146 テーブルが存在しません。” .IDB ファイルの移動によって引き起こされる (InnoDB) ディレクトリ間で直接 (テーブル スペース).

logo_mysql

問題

我々 が抱えている問題の多くは、私たちを作成問題. 私はワードプレスを使用してサイトを設定していたと思った: どのように PHP でこの作品を見 7? わかりました, 私の WampServer として PHP を使用 5.6, 私はしていたので “幸せです” アップグレードすることを WampServer 2.5 (Apache 2.4.9, MySQL 5.6.17, PHP 5.5.12) ため WampServer 3.0.6 (Apache 2.4.23, MySQL 5.7.14, 5.6.25 PHP および Php 7.0.10).

もちろんです, バックアップの開始, 私の偉大なスリップはこのようなサイトから SQL をエクスポートしないことを選択するだったが、, その代わりに, MySQL のファイルのコピーを作りました (MySQL/データ) アプリケーション (www/サイト). 私はそれが働くだろうと確信していた, 他の回のような.

PHP で新しい WampServer をインストールした後 7, バックアップ ファイルおよびアプリケーション バックアップ, のみに行ったとき、ブラウザーでテスト, サイトが表示されません。, ワードプレスのインストールの画面が新しいサイトであるかのよう. 止まってしまった! PHPMyAdmin は、データベースは Ok だった、それを見たかどうかを参照してくださいにチェックを開く, データベースでリストされているにもかかわらず, データの次のエラー メッセージを表示するのにはテーブルの上にクリックしたとき:

  MySQLの エラー #1146 -テーブル <TABLE_NAME> doesn ' t が存在します。

私が検索されているし、私はちょうどすることができますのみが調べたコピーまたはファイルが MyISAM 型の場合、別の MySQL ディレクトリに直接ファイルを移動, frm ファイル拡張子とのそれら。MYD。MYI. 私は何が起こったかわからない, しかし、私のデータベースに InnoDB として登場 (.frm の and 米州開発銀行). 残念なことに, 実際にマニュアルを MySQL に通知後のみ:

  自由に移動することはできません。 .データベース ディレクトリ間で IBD ファイル として MyISAM テーブル ファイルすることができます。. 
  InnoDB 共有テーブル スペースに格納されているテーブル定義には、データベース名が含まれています。. 
  トランザクション Id と ログ データベース間で表領域ファイルに格納されているシーケンス番号も異なる.

ソリューション

いくつかのシンプルなソリューションをやらなければ, 本当に私のために働いた唯一の 1 つを紹介しますが、, それははるかに複雑なようです。, ポストが見つかりました “テーブルの復元(s) MySQL データベース frm または ibd ファイルが利用可能に“.

以前は, しかし, 知識のタイトル, InnoDB に関連して入力を覚えてください。, MySQL ファイルで、ガードの構造および .frm。 ibd のデータ. 十分な理論, 追いかけてみましょうカットします。!

ステップ 1: .Frm ファイルの構造を再作成します。

いう, frm にはテーブル構造が含まれています. まずデータを入力するこの構造体を取得します. これを行うことができます。 3 以下のさまざまな方法, 前に, 私についての何かを教えて聞かせ、 “Mysql ユーティリティ”.

Mysql ユーティリティ | mysqlfrm

提案する最初のメソッドを使用しない場合 (オンライン) ツールを使用する必要がありますので “mysqlfrm” によって提供される、 “Mysql ユーティリティ“.

このツールはデータ構造を抽出し、テーブル作成の SQL スクリプトを生成. こちらは, ダウンロード “Mysql ユーティリティ” (mysql-ユーティリティ-1.6.4-winx64.msi のようなもの) そしてそれをインストール.

コンソールを開く (コマンド / の、) デフォルトのインストール ディレクトリに移動する CD コマンドを使用して、 (C のようなもの:\C:program FilesMySQLMySQL ユーティリティ 1.6\). このディレクトリ内で実行可能ファイルがあることに注意してください。 mysqlfrm.exe.

  CD "C:\C:Program FilesMySQLMySQL ユーティリティ 1.6"

.Frm ファイルに含まれているテーブル構造を抽出する以下のメソッドの 1 つだけを選択します。:

1º メソッド | オンライン

1. ウェブサイトに行く HTTPS://recovery.twindb.com/;
2. メニューをクリックしてください。 “構造を復元します。” で、 “frm ファイルから。“;
3. ボタンをクリックします。 “ブラウザー…” frm ファイルを選択; および
4. ボタンをクリックします。 “アップロード” テーブル作成スクリプトが画面に表示されますと.

一度すべてのテーブルを 1 つのスクリプトを生成する複数のファイル frm を送信することが可能です。. 前にすべてその .frm で .zip を作成できるようにだけ “ブラウザー/アップロード”.

2º メソッド | 使用してください。 –診断

/* 一般的な例 */
   mysqlfrm 診断 "<ソース/パス>/mytable.frm" > "<destination/path/recovered_mytable.sql>"
 
/* ワードプレスの wp_posts.frm テーブルとの練習の例 */
   mysqlfrm --診断 "C:\wampbinmysqlmysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.sql"

3º メソッド | 使用してください。 –サーバー

/* 一般的な例 */
  mysqlfrm サーバー=ルート:mypassword@localhost ポート=3311 "<ソース/パス>/mytable.frm" > "<宛先/パス>/recovered_mytable.sql"
 
/* ワードプレスの wp_posts.frm テーブルとの練習の例 */
  mysqlfrm --サーバー=ルート@ローカル ホスト --ポート=3307 ""(C):\wampbinMySQL\MySQL5.6.17\datameubancowp_posts.frm" > "(C):\recovered_wp_posts.SQL"

MySQL のポートは使用しないでください。! いずれかを選択して使用可能な他. コマンドが指定されたパスに保存されている .SQL ファイルに出力をリダイレクトすることに注意してください。 (場所, (C):).

ステップ 2: データベース内のテーブルを再作成します。

新しいデータベースで, 手順で生成されたスクリプトで、テーブルを作成します。 1. 私は個人的に WampServer のクリーン バージョンをインストールし、PHPMyAdmin を使用 (http://localhost/phpmyadmin/) データベースを作成し、手順で作成した SQL スクリプトをインポートするには 1 (recovered_wp_posts.sql). このスクリプトが作成します。 2 あなたの MySQL データベースのディレクトリ内のファイル:

  SUA_TABELA.frm SUA_TABELA.米州開発銀行

私の場合は, これらのファイルがで作成されました。 (C):\wamp64binmysqlmysql5.7.14data<私の席>. IE, MySQL のインストールを探して、ディレクトリに注意してください。 日付 あなたのデータベースと上記 2 つのファイルがあります。.

ステップ 3: 新しい .IDB ファイルを削除します。

新しい .IDB ファイルを削除するには, 次の SQL コマンドを実行します。:

/* 一般的な例 */
  ALTER TABLE mytable テーブル スペースの破棄;
 
/* ワードプレスの wp_posts テーブルと実際例 */
  ALTER TABLE wp_posts テーブル スペースの破棄;

このコマンドは、テーブルとテーブル スペースの間のリンクを削除します (物理的に格納されているデータベース ファイル), .IDB ファイルの削除.

ステップ 4: 古い .IDB ファイルにコピーします。

元の .IDB ファイル (データを含む) .IDB ステップで削除された場所にコピーする必要があります。 3. Ctrl + C と Ctrl + V を使用してまたはコマンド ・ ラインを使用して自分自身を殺す.

ステップ 5: テーブルを再アクティブ化します。

ステップ内の壊れたリンク 3 次のコマンドで復元する必要があります。:

/* 一般的な例 */
  ALTER TABLE mytable インポート テーブル スペース;
 
/* ワードプレスの wp_posts テーブルと実際例 */
  ALTER TABLE wp_posts インポート テーブル スペース;

いくつかの警告が表示されたら場合心配しないでください。, しかし, 一般的な故障の次のエラーが表示されることがあります。:

  #1808 - スキーマの不一致 (テーブルは、行形式の ROW_TYPE_DYNAMIC, .IBD ファイルの ROW_TYPE_COMPACT 行形式。)

この場合, これは mysql 5.7.14 とは異なるために起こった (新機能) Mysql 5.6.17 に比べてデフォルト テーブルを作成します (古い), ROW_FORMAT なし = コンパクト.

だから, MySQL を使用している場合 > = mysql 5.7.14, すべて que あなたは precisa フェーザー é acrescentar ROW_FORMAT コンパクト na 品位オーディオのプログラム ・ デ ・ criação ダ tabela を =.

  CREATE TABLE 'wp_posts' (. . .) エンジン=InnoDB ROW_FORMAT=コンパクト

アウトロの誤り

Apenas パラ deixar registrado, アンティ ・ デ ・ obter ボンスセソ na extração ・ デ ・ dados は .frm, tive alguns 誤り:

  # ローカル ホスト上のソース: ... 接続されています。.
  # ポートで生成されたサーバを起動 3304 ... エラーを停止しようとして失敗した子サーバー.  プロセス id = 6648.
  エラー: スポーン サーバー操作に失敗しました. クローン サーバー エラー: 通信できません。 新機能 インスタンス. プロセス id = 6648.. 診断するには, ユーティリティを再度実行し、 使用して、--子サーバーからメッセージを表示し、エラーを修正する冗長性オプションを提示し、ユーティリティを再度実行.
  成功: PID のプロセス 6648 (子プロセスの PID 7264) 終了しました.
トレース バック (最新ラストコール):
  ファイル "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.py", ライン 27,<モジュール>
  ファイル "scripts\mysqlfrm.py", ライン 422,<モジュール>
  ファイル ".\mysql\utilities\command\read_frm.py", ライン 439, read_frm_files で
  ファイル ".\mysql\utilities\command\read_frm.py", ライン 166, _spawn_server で
  ファイル ".\mysql\utilities\command\serverclone.py", ライン 180, clone_server で
  ファイル ".\mysql\utilities\common\tools.py", ライン 273, get_mysqld_version IOError で: [Errno 13] アクセスが拒否されました: ' version_check'

Caso específico は、ワードプレスを行う, 下で生成された SQL を生成するスクリプトを削除する必要があります frm。, すべてのエントリの既定 ‘0000-00-00 00:00:00’, それ以外の場合, エラーをキャッチします。:

  #1067 - 既定値 (デフォルト) 'comment_date' では無効です。

それです!

フォント

http://www.voxteneo.com/restoring-tables-mysql-database-frm-ibd-files-available/

https://medium.com/@alexquick/transporting-mysql-tablespaces-from-5-6-to-5-7-517c01345fbb#.72zermd8b

http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html

https://lanmenezesbr.wordpress.com/2014/10/21/mysql-erro-1146-table-doesnt-exist/

http://stackoverflow.com/questions/7759170/mysql-table-doesnt-exist-but-it-does-or-it-should

総ヒット数: 21481

12 上のコメント “.Frm ファイル積 ibd だけが利用できる場合、MySQL のテーブルを回復します。

  1. ロドリゴ 述べた:

    どのようなとき、次のエラー メッセージを参照してください。: #1815 – 内部エラー. テーブルの Lsn をリセットできません。 “私の席”.”myTable”: データ構造の破損.
    データの挿入を手動で実行することができます。? これを行うにする方法?
    既にあなたに感謝以来.

  2. キモ 述べた:

    ちょうどビッグ F を与えるしたい * * 王の感謝 YOUUUUUUU. 私の人生の男を保存します。!!!!!

  3. クリスティアン U 述べた:

    こんにちはテイラー,

    このエラーを解決するには:
    エラー: スポーン サーバー操作に失敗しました. クローン サーバー エラー: 新しいインスタンスと通信できません。. プロセス id = 6648.. 診断するには, ユーティリティを再度実行して、 –子サーバーからメッセージを表示し、エラーを修正する冗長性オプションを提示し、ユーティリティを再度実行.
    成功: PID のプロセス 6648 (子プロセスの PID 7264) 終了しました.

    私は、同じメッセージと私を受け取り続ける don´t は、それを解決する方法を知っています。.

    おかげで

  4. Jothaz 述べた:

    偉大なポストバディ.

    もちろんです, 簡潔です, 完全かつ信頼性の高い.

    たくさん助けてください。.

  5. ジョアン ・ フェリペ 述べた:

    やつ… お祝いの言葉…
    それが私の仕事!
    非常にチュートリアル良い….

  6. ルアン 述べた:

    たくさん助けてください。. 非常に重要なデータがあって回収されました。. OBG!

  7. レジナルド ルイス ・ デ ・ フレイタス 述べた:

    おめでとうさん, しかし、教育不可能!! あなたが同じ男です。!

    抱擁とあなたの経験を共有するためのおかげで!

メッセージを残してください

あなたのメール アドレスは公開されません. 必要なフィールドが付いています *