2016-03-31 22 views
0

最近私のWindowsマシンに問題があり、セーフモードにしかログインできませんでした。そのため、ApacheやMySQLを稼働させることができませんでした。私ができる唯一のことは、MySQLデータディレクトリのバックアップを取ることでした。データファイルからMySQLデータベースを復元する(WindowsからUnixへ)

マシンにWindowsを再インストールした後、代わりの(より良い)開発環境を試してみたいと思い、バゲントを見つけました。私はVirtualBoxを使ってこの設定を手に入れ、Ubuntuをインストールしました。データディレクトリのバックアップで

は、私が持っている:各データベースを表す

  1. 個々のフォルダ
  2. 以下のファイル:auto.cnfib_logfile0ib_logfile1ibdata1

データベースをI MyISAMInnoDBのデータベースの組み合わせを含んでいます。

私がしたいことは、データベースをMySQLに復元することです。私はUnixコマンドにあまり慣れていないので、FileZillaを使ってVMにSSHを適用しました。私はその後、Ubuntuでデータディレクトリの場所を見つけました。これは/var/lib/mysqlです。

まず、このディレクトリのアクセス権を変更して、ファイルをそのファイルに転送できるようにしなければなりませんでした。

私はmysqlサービスを停止して、いずれかのフォルダにコピーしました。その後、mysqlを再起動しました。この後、私はphpmyadminをオープンしました。私が上にコピーしたデータベースがリストされましたが、それをクリックすると1つのテーブルしか表示されませんでした(4でなければなりません)。この表をクリックしてデータを参照すると、エラー#1033 - incorrect information in file 'product.frm'が表示されます。

また、他の3つのテーブルが左側の列に表示されていましたが、これらをクリックするとエラー#1146 - Table 'category' doesn't existが表示されました。

また、ibファイルをコピーしようとしましたが、この後にmysqlサービスが起動しませんでした。

問題は何ですか?ファイルがWindowsから生成されたという事実とは関係がありますか?または、プロセスを間違って実行していますか?

答えて

1

私は、MySQLデータディレクトリが異なるオペレーティングシステム間で移植可能であるとは考えていません(つまり、MySQLはファイルシステムの大文字と小文字の区別の変更をまったく処理しません)。あなたの最善の選択肢は、Windowsでデータディレクトリ( "物理"ダンプ)を復元し、mysqldumpを使用して一連のSQLコマンド(論理ダンプ)を取得することです。その後、PHPMyAdminのインポート機能を使用するか、シェルコマンドを使用してこのファイルをインポートできます。

+0

ありがとうございます、私はあなたの助言に従って、それだけでした。 WindowsマシンにMySQLサーバーをインストールし、データディレクトリのバックアップを新しいデータディレクトリにコピーした後、MySQL Workbenchを使用してすべてのデータベースのSQLバックアップを生成しました。 その後、このバックアップファイルをMySQL Workbenchを使用してVMにインポートし直しました。 この全体のプロセスは簡単ではありませんでしたが、途中でいくつかの問題がありましたが、最後にソートされました:) – GSTAR

関連する問題