このページではLinux、Apache/httpd、PHP及びMySQLを用いたLAMPシステムでのphpMyAdminによるデータベースのバックアップについて解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
CMS/LAMPシステムの構築

CMS/LAMPシステムとは

ApacheとPHPの設定

MySQLの導入と基本設定

MySQLのコントロール

HTTPSのためのルーター設定

phpMyAdminのインストール

データベースの作成と削除

XOOPS Cubeのインストール

WordPressのインストール

MovableType3のインストール

MovableType4のインストール

MovableType5のインストール

osCommerceのインストール

データベースのバックアップ

データベースのリストア


MySQLのデータベースのバックアップの考え方

MySQL を データベース として利用する CMS は、自身の運用や管理に必要なデータの大部分をデータベースに格納したり書き出したりして動作しています。

MySQLは強固で安定なデータベースなので、滅多なことでは内容が壊れたりすることはありませんが、例えば掲示板から不要な(不愉快な?)書き込みを削除しようとして誤って必要なものを消してしまう、というようなミスでデータを失ってしまう可能性はゼロではないはずです。

CMSの運用ではなく通常の コンテンツ の運用の場合には、 HTML データはその アップロード 元である クライアント機 から送信するわけですから、最初からクライアント機上にバックアップデータがあるのと同じことといえるでしょう。

つまりこういう運用スタイルでは、コンテンツデータのバックアップについてはあまり神経質になることはないといえます。

例えば CGI を利用して サーバー 上の テキスト にデータを書き込むようなスタイルの場合でも、そのデータは FTPクライアント を使ってまるごとクライアント機に ダウンロード しておけば大丈夫です。

しかし管理と運用のほとんどを HTTP 経由で直接サーバー上で行うCMSでは、クライアント機にバックアップが残ることはありませんから、そのバックアップ作業は何らかの方法で サーバーからダウンロード して行う必要があるわけです。

実は WBEL や CentOS 上で動作しているMySQLは は "/var/lib/mysql" 以下にデータベースを格納しています。

単純に考えると、「じゃあ、 "/var/lb/mysql" 以下をまるごとクライアント機にダウンロードすればバックアップになるでしょう?。」

と、思われるかもしれませんが、このディレクトリは一般ユーザーでのアクセスが許可されていない(というより、管理上許可できない。)ため、サーバー管理者以外にはそういう手段を講じることができません。

実はMySQLには、データベースに格納されている バイナリ データを、その構造を維持したままテキストの出力と入力を行う コマンド "mysqldump" が準備されていて、データのバックアップとリストアにはそのコマンドを利用することができます。

そのためにはもちろん自分を含めた利用者に SSH での ログイン を許可しなければなりませんし、そのコマンド操作自体も簡単なものではありませんからコマンドで直接操作するのは好ましい方法ではありません。

ところが、MySQLの管理ツールである phpMyAdmin を利用すれば、その "mysqldump" を GUI から間接的に利用して簡単、安全に実行することができます。

phpMyAdminのインストール で インストール したphpMyAdminは、実は「サーバー管理者専用」というべきものではなく、個々にMySQLのデータベースを利用するユーザーアカウント全員が利用可能なツールですので、それぞれのユーザーが自分のデータベースのバックアップやリストアを行うのに利用させてあげることができます。

このパートでは、phpMyAdminを利用したMySQLデータのバックアップとリストアについて解説します。

このページの先頭へ↑

管理データベースのバックアップ

MySQL は、 ユーザーアカウント やその権限、パスワード、 データベース の情報をはじめ、自分自身で管理している情報も、 "mysql" というひとつのデータベースに格納して動作しています。

従って、 サーバー の管理者がやるべきことはこの "mysql" のバックアップということになります。

まず、 構築中のLinuxサーバー の phpMyAdmin に ログイン 可能な ホスト から、phpMyAdminに "root" でログインしてください。

rootでphpMyAdminにログイン
rootでphpMyAdminにログイン

ログインしたら、ページの左側のメニューから "mysql" をクリックしてください。

MySQLのデータベースは、このようにたくさんのテーブル(表のようなもの)の集まりになっています。

少し待つと、以下のようなテーブルの一覧ページが開きますので、上の欄から エクスポート をクリックしてください。

テーブルの一覧からエクスポートをクリック
テーブルの一覧から"エクスポート"をクリック
もしもエクスポートのリストが選択状態になっていないときは 全選択 をクリックします。
また DROP TABLE / ... を有効にしておくと、リストアを行うときに同名のテーブルを一度削除してから復元を行いますので、リストアの前に既存のテーブルを手作業で削除する必要がなく、作業が簡単になります。

すると、以下のようにエクスポート(データの書き出し)のページが開きますので、左の赤丸で示すエクスポートのリストがすべて選択状態になっていることを確認し、更に DROP TABLE / ... にチェックマークを入れます。

エクスポートの設定1
エクスポートの設定1

引き続きこのページを下にスクロールし、バックアップ形式に SQL が選択されていることを確認します。更に ファイルで保存する にチェックマークを入れます。その下はデータを圧縮するかどうかのオプションですが、バックアップデータが大きくなってデータのダウンロードに時間がかかるような場合に選択すると便利です。

設定が終わったら 実行する ボタンをクリックします。

エクスポートの設定2
エクスポートの設定2

すると、以下のような ダイアログ が表示されますので 保存(S) ボタンをクリックします。

バックアップデータ保存の確認ダイアログ
バックアップデータ保存の確認ダイアログ

すると「名前をつけて保存」のダイアログが表示されますので、適当な名前をつけて使用中のホストなどに保存してください。

これで管理データベースのバックアップが終わりました。

このページの先頭へ↑

CMS用データベースのバックアップ

CMS 用に利用している MySQL の データベース を個別にバックアップするときは、そのデータベースの ユーザーアカウント で phpMyAdmin に ログイン して同様に操作します。

もちろん、MySQLに対してすべての操作権限を持つ "root" でログインすれば任意のデータベースのバックアップ操作が可能ですが、 bash での作業と同様に「可能な限り最低限の権限で作業する ユーザーアカウント利用の考え方について(WBEL3) ユーザーアカウント利用の考え方について(CentOS3) ユーザーアカウント利用の考え方について(WBEL4) ユーザーアカウント利用の考え方について(CentOS4) ユーザーアカウント利用の考え方について(CentOS5) 」のが安全です。

従って、管理者であるあなた自身が個別のデータベースをバックアップする場合でも、面倒かもしれませんが個別のユーザーアカウントでログインして作業することをお薦めします。

以下、ユーザーアカウント "tanaka" が使用しているデータベース "tanaka" のバックアップを例に説明します。

まず、 構築中のLinuxサーバー の phpMyAdmin に ログイン 可能な ホスト から、バックアップ対象となるデータベースの利用ユーザーアカウントでphpMyAdminにでログインしてください。

一般ユーザーtanakaでphpMyAdminにログイン
一般ユーザーtanakaでphpMyAdminにログイン

ログインしたら、ページの左側からデータベース名 "tanaka" をクリックしてください。

右のページの中ほどに 「特権なし」 と表示されていることでもおわかりのとおり、一般ユーザーアカウント "tanaka" には重要な権限は一切与えられていません。
つまり、操作を間違えて何かをぶっ壊しても「被害者は自分だけ」ということになるわけですね。
MySQLのデータベースは、このようにたくさんのテーブル(表のようなもの)の集まりになっています。

少し待つと、以下のようなテーブルの一覧ページが開きますので、上の欄から エクスポート をクリックしてください。

テーブルの一覧からエクスポートをクリック
テーブルの一覧から"エクスポート"をクリック
もしもエクスポートのリストが選択状態になっていないときは 全選択 をクリックします。
また DROP TABLE / ... を有効にしておくと、リストアを行うときに同名のテーブルを一度削除してから復元を行いますので、リストアの前に既存のテーブルを手作業で削除する必要がなく、作業が簡単になります。

すると、以下のようにエクスポート(データの書き出し)のページが開きますので、左の赤丸で示すエクスポートのリストがすべて選択状態になっていることを確認し、更に DROP TABLE / ... にチェックマークを入れます。

エクスポートの設定1
エクスポートの設定1

引き続きこのページを下にスクロールし、バックアップ形式に SQL が選択されていることを確認します。更に ファイルで保存する にチェックマークを入れます。その下はデータを圧縮するかどうかのオプションですが、バックアップデータが大きくなってデータのダウンロードに時間がかかるような場合に選択すると便利です。

設定が終わったら 実行する ボタンをクリックします。

エクスポートの設定2
エクスポートの設定2

すると、以下のような ダイアログ が表示されますので 保存(S) ボタンをクリックします。

バックアップデータ保存の確認ダイアログ
バックアップデータ保存の確認ダイアログ

すると「名前をつけて保存」のダイアログが表示されますので、適当な名前をつけて使用中のホストなどに保存してください。

これでデータベース "tanaka" のバックアップが終わりました。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System