質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

1472閲覧

上書きしてしまったMySQLデータの復元(.MYDファイル)

apple_japan

総合スコア57

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

4クリップ

投稿2017/07/25 02:09

MySQLのデータベース内にある一つのテーブルを全て上書き(update)してしまいました。
バックアップは取っておりませんでした。

/var/lib/mysql/ディレクトリを見ると各テーブルのファイル(.MYD、.MYI.frm)が入っていました。
該当テーブルの.MYDファイルの中身をviで見てみると、
上書きする前のデータと上書きした後のデータが混在して書き込まれているようでした。

なんとかこの.MYDファイルから、上書きする前のデータを復元することはできないでしょうか。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

mydファイルはテーブルの実データが入っています。

直接触るのは危険な気がします。

バックアップを取っていないとのことで厳しいですが。。。

MySQLにはバイナリログというものがあり、定期的に削除するようにしていなければこれまで発行したSQLがここに溜まっていきます。

バイナリログからリストアすれば復旧する可能性はあるかもしれません。

MySQLバイナリログの仕様

意外と知らないMySQLのリストアとロールフォワード回復

MySQLで、特定のテーブルをTRUNCATEしちゃった時の復旧方法

※検証する際は事故ったDBとは別の環境で検証してください。

※上の人がいるなら報告して指示を仰いだ方がいいです。

投稿2017/07/25 05:48

編集2017/07/25 05:51
balaenoptera

総合スコア222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

apple_japan

2017/07/26 14:03

遅くなりましたm(_ _)m 回答ありがとうございます! バイナリログは設定していなかったので残っていませんでした。。。 他サイトからの移転だったのでなんとか前のサイトからのデータをインポートして、復旧することができました! 移転先で新しく入れたデータは復元できませんでしたが、量が少なかったのでなんとか手動で復旧できました。ありがとうございます。 これからは毎日バックアップを取っておこうと思います。
balaenoptera

2017/07/27 05:29

復旧できたようで良かったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問