こんにちは。
私の Debian 9 サーバーで問題が発生し、OS にアクセスできなくなりました。プロジェクトのすべての生のデータベース ファイル (/var/lib/mysql) を抽出できましたが、残念ながらエンジン タイプが InnoDB に設定されていました。
何らかの方法でデータベースを回復できる可能性はありますか? ありがとうございます。
答え1
全体をお持ちの場合は、現在のコンテンツをお持ちのコンテンツで/var/lib/mysql
完全に置き換えてみることをお勧めします。/var/lib/mysql
mariadb/mysql オプションに応じて、innodb データの一部またはすべてがグローバルになり、、/var/lib/mysql/ibdata1
および/var/lib/mysql/ib_logfile
ファイルに保存されます。そのため、を復元するだけでは、/var/lib/mysql/databasename/table*
通常、innodb データを復元するには不十分です。
すでに復元済みまたは使用を開始している場合は、そのディレクトリの現在の内容を一時的に別の場所に移動できます。または、VM などで一時的に新しいマシンを起動して、/var/lib/mysql
何も中断せずにディレクトリ全体の復元をテストすることもできます。
古いデータを配置したら、/var/lib/mysql
サーバーを起動してデータを抽出できるはずです。権限がどの程度ロックされているかに応じて、権限をバイパスするオプションを使用して mariadb を起動する必要がある場合があります。ただし、これを使い続けることはお勧めしません。代わりに、その時点で mysqldump またはお気に入りのツールを使用してデータベースをダンプし、それを本番データベースに再インポートすることをお勧めします。
元に戻すときは、mysql/mariadb サービス アカウント (通常は mysql/mysql) がすべてのファイルを所有し、読み取り/書き込みアクセス権を持っていることを確認してください。