先日、データベースのコピーをしようと作業をしていたら、データベースが新規作成上書きされました。
目の前、真っ暗。
バックアップも取っておらず、「え?なんでこうなるの?」的な展開だったため、口をパクパクするばかり。

サーバー会社に連絡したところ、格安プランのため、自動バックアップは取られておらず、バックアップの有償配布もなかったのですが、下記のようなご連絡をいただきました。

データベースの場合、コントロールパネルから【作成】や【削除】を行われた際に、「.dump」ファイルを自動的に生成する仕様となっております。

「.dump」ファイルはお客様環境下の「/_db_dump」に生成されますので、各ファイルのサイズや変更日時をお確かめの上、ご希望の「.dump」からリストア(復元)をお試しいただければと存じます。

リストアできる!

そうは言っても、phpMyAdminからしかデータベースの操作はしたことがなく、直接サーバーに入ってと言ってもtelnetしか知らないし…。
呆然としている頭で調べて復旧するまでの流れを備忘録として記録しておきます。

手順1 ターミナルエミュレータを手に入れ、WEBサーバーにアクセスし、MySQLにログインする

まずSSHでWEBサーバーにアクセスするために、「ターミナルエミュレータ」をダウンロード。

こちらの記事で救われました。
レンタルサーバーにSSH接続でMySQLへアクセスする

手順2 空のデータベースを作成しておく

MySQLにログインしている状態でデータベースを作成します。
MySQLのコマンドでは下記のように入力します。

CREATE DATABASE 空のデータベース名;

今回、私は「新規上書き作成」をしてしまったため、データベースは空でしたが…。

手順3 MySQLからログアウトし、SSHに戻る

exit
または
quit

手順4 ダンプファイルがあるディレクトリに移動

今回の場合は、「cd /_db_dump」。cdはchange directoryが略されたコマンドでディレクトリを移動します。

cd 移動するディレクトリ

たぶんディレクトリを移動しなくても、次の手順5でダンプファイルをディレクトリから指定してやれば良いと思います。
ダンプファイル名が長く、SSHでのコピペ方法にあまり自信がなかったため、先に移動しています。
その方がlsコマンドでディレクトリ内を表示して、ファイル名をコピーしやすいと考えています。あまり意味はないかも。

手順5 ダンプファイルのリストア

もうゴールは目前です。ダンプファイルをMySQLに読み込ませてリストアします。

mysql -u データベースユーザー名 -p データベース名 -hlocalhost < ダンプファイル名

こちらの記事で救われました。
mysql ダンプとリストア(2023年5月18日追記:閉鎖)

まとめ?

動揺したまま作業したので、何から手を付ければ…?となっていましたが、手順さえわかっていればあっけないほど簡単でした。
慌てないで、お試しあれ!

プロフィール

荒岩 理津子
荒岩 理津子株式会社アールジャパン 代表取締役
株式会社東芝にてソフトウェア開発11年、サスペンションメーカーの広報6年、国立大学情報システムセンター非常勤職員、個人事業主を経て、2016年9月に株式会社アールジャパンとして法人化。WordPressに特化したWEBシステムの開発に携わる。Microsoft Visual Basic®のプログラミングに関する著書が9冊、そのうち一部は国立図書館に寄贈されている。色彩検定1級、Shoplifyパートナー。趣味は手芸一般。編み物歴、洋裁歴は四半世紀以上。神奈川県中小企業家同友会 広報委員会副委員長・編集長。