【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

古いバージョンのLinuxサーバのHDDが故障した時にMySQLを復旧する方法

ビヨンドの原岡です。

古いサーバーがハードディスクの破損によって起動しなくなった時に、データファイルだけでなくMySQLのデータを復旧するための手順を簡単にまとめました。

今回はMySQL 3.23.58のデータを復旧します。
※データ復旧は様々な要因が絡みますのであくまで参考としてご確認ください。

ハードディスク復旧業者さんにデータを復旧してもらう

まずは故障したHDDの復旧が必要です。

下記のように自前で復旧できる場合もありますが、失敗すると状況が悪化する恐れもありますので業務データなどが入っている場合はできるだけ確実に復旧するためにハードディスクの復旧業者を使った方が良いかと思います。

素人でもできるHDDの修理と復旧方法
http://macasakr.sakura.ne.jp/HDD

業者さんもかなりいろいろなところがありますが、私のおすすめ業者はくまなんPCネットさんです。
https://www.kumanan-pcnet.co.jp/hdd/info.php

実は業者の中でも技術力はかなり差があるのですが、くまなんPCネットさんは15年の実績があり、自社にクリーンルームも持っていて、高い技術力に基づいた復旧対応をしてくれます。

復旧用のサーバを構築

  • 構築用のサーバを準備する

適当な筐体を用意してデータベース復旧用のサーバーを構築していきます。まずはMySQLが稼働していたサーバーのOSバージョンを確認しておきます。

1
cat /復旧ディレクトリ/etc/redhat-release

バージョン情報が手元にない場合は、復旧してもらったデータのディレクトリから
redhat-releaseのファイルを確認します。


古いOSはi386i686などの32bit版の場合もあります。64bitのCPUでも32bit版のOSはインストールできますが、メモリを4GBまでしか認識できないため、メモリを多めに積んである筐体は抜いておいた方が無難です。

  • 古いバージョンのLinuxOSをインストールする

今回はCentOSをこちらのサイトを参考に
http://www.linuxmaster.jp/linux_blog/2010/03/centos.html

このサイトからダウンロードします。
http://vault.centos.org/
上記サイトはCentOS2.1以降がダウンロードできるという素晴らしいサイトです。
今回はCentOS4系をダウンロードさせていただきました。

MySQLをダウンロード

こちらからインストール用ファイルを拝借
http://dbstudy.info/mysql/

ここにもあります。
http://live.dadanini.at/mysql/downloads_html/mysql-3.23.html

MySQLをインストール

ソースファイルからビルドします。

  • インストール用ディレクトリとユーザの作成
1
2
3
4
5
6
cd /usr/local/src/
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
mkdir /usr/local/mysql
mkdir /usr/local/mysql/var/
chown -R mysql:mysql /usr/local/mysql
  • MySQLのインストール
1
2
3
4
5
6
tar -zxvf mysql-3.23.58.tar.gz
cd mysql-3.23.58/
./configure --prefix=/usr/local/mysql
 
make
make install
  • インストールDBの作成
1
scripts/mysql_install_db
  • mysql起動
1
/usr/local/mysql/bin/safe_mysqld --user=mysql &

※mysqld_safeではないので注意

  • 起動確認
1
ps -ef | grep mysql
  • ログインしてみる(パス無し)
1
mysql -u root
  • rootパスワードの設定
1
mysqladmin -u root password "*****"
  • mysql停止
1
/usr/local/mysql/bin/mysqladmin -u root -p shutdown

これで復旧の準備はOK

復旧したデータファイルを入れ替え

HDDを復旧した先からMySQLのデータファイルを丸ごとアップロード

文字化けの可能性もあるので、できれば圧縮して移動した方がよいです。

  • アップロードしたファイルを解凍
1
gunzip /home/hogehoge/mysql_buckupdata.gz
  • データファイルのディレクトリごと移動
1
2
3
mv /usr/local/mysql/var /usr/local/mysql/var_tmp
 
cp /home/hogehoge/mysql_buckupdata /usr/local/mysql/var
  • 権限変更
1
chown -R mysql:mysql /usr/local/mysql/var
  • iblogfileの削除
1
rm /usr/local/mysql/var/ib_logfile*
  • DBの起動

mysql起動・停止

1
/usr/local/mysql/bin/mysqld_safe --user=mysql &

これで起動すればひとまず復旧はOK

DBのエクスポート

1
mysqldump -u root -p db名 > /home/hogehoge/new_buckup.dmp

復旧したデータをエクスポートしておく

以上でデータ復旧は終わりです。

もし復旧などでお困りのことがあればビヨンドまでお問合せくださいませ。

https://beyondjapan.com/contact

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
926
X facebook はてなブックマーク pocket
【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author

原岡昌寛

株式会社ビヨンドの代表取締役です。

Oracle DBA(UNIX、Linux、Windows SeverでDBのお世話)
⇒Linuxエンジニア(DCでサーバー、FW、L3などをまるっと構築・運用)
⇒クラウドエンジニア(マルチクラウドAWS、GCP、Azure等)
⇒経営者

趣味は読むこと。マンガ、ネット小説、ビジネス書などなんでも読みます。最近ソロキャンプをはじめました。