【phpMyAdmin】データベースのバックアップはこまめに取っておこう【MySQL】

どーも、「大谷翔平(野球)」「羽生結弦(スケート)」「山﨑賢人(俳優)」と同い年のヨシダ(凡人)です。今年最後の投稿になりそうです。来年もどんどんブログをあげていくので、宜しくお願い致します。

よく、「データが改ざんされて、復旧できない…」や「操作ミスで、必要なデータの削除、上書きをしてしまった。どうしよう…」等の事態がありますが、このようなことが発生してもデータをバックアップをしていれば、インポートをするだけですぐに復旧できます。しかし、なぜかバックアップをとるという作業が面倒くさいのか、定期的にバックアップ作業をしている人が少ないです。もちろん攻撃者からデータを守るためのセキュリティ対策というのは大事ですが、もしもの事態に備えてバックアップをとるということの方が大事です。とういうわけで、今回はデータベース(MySQL)のデータをWebブラウザから管理できる「phpMyAdmin」の使い方を解説したいと思います。

 

phpMyAdminとは

phpMyAdminとはMySQLデータベースを使うためのインターフェースが備わったWebアプリケーションで、その名の通り、phpで実装されています。MySQLは世界でもっとも普及されているオープンソースのデータベースであり、例えば、WordPressのデータベースはこれを使用しています。MySQLはコマンドで操作(SQL文を記述)するのが基本になりますが、phpMyAdminを使用することによって簡単にWebブラウザから様々な操作が可能になります。主にできることは「データベースの作成、編集、削除」「テーブルの作成、編集、削除」「カラムの作成、編集、削除」「インデックスの作成、編集、削除」「データベース内、テーブル内でのデータの挿入、編集、削除、ソート、検索」になります。また、ユーザが任意のSQL文を記述して実行することもできます。しかし、phpMyAdminはWebサーバに設置するため、容易にアクセスされてしまう危険性がある。また、有名な管理ツールであるため攻撃の対象とされやすい弱点もある。そのため、最新のバージョンに更新、厳重なパスワード管理、IPSやWebアプリケーションファイアーウォールを設置する等の対策が必要になってきます。

 

phpMyAdminのダウンロード

こちらhttps://www.phpmyadmin.net/)のサイト右上にある「Download」からダウンロードします。
※2017年12月27日現在の最新バージョンは4.7.7です。

「phpMyAdmin-4.7.7-all-languages.zip」を解凍したら、任意の場所に保存しておいて下さい。ダウンロードは以上で完了です。なおダウンロード開始と同時に次のような画面が表示されます。開発元に寄付をされる場合は「Donate to phpMyAdmin」をクリックして下さい。行わない場合は「Close」をクリックして下さい。

 

phpMyAdminのインストール

続いてインストールを行います。phpMyAdminはPHPを使って記述されたスクリプトですので、ダウンロードして解凍したファイルをブラウザ経由でアクセスすることができるApacheのドキュメントルート内に配置してください。例えば、僕のWordPressで作ったサイトでは、こちら(https://www.yoshidamasaaki.com/phpMyAdmin-4.7.7-all-languages/)にアクセスした時に、phpMyAdminの管理画面が表示できるように、scpコマンドを使用してローカルからリモート先にファイルを/opt/bitnami/apps/wordpress/htdocs以下に配置してみました。scpは、sshを使ってネットワーク・ホスト間でファイルを安全にコピーするためのコマンドです。なお、このままでも構いませんが、ディレクトリ名が長いので「phpmyadmin」のように変更しても問題ありません。

 

phpMyAdminへのログイン

先ほどファイルを設置したページ(例:https://www.yoshidamasaaki.com/phpMyAdmin-4.7.7-all-languages/)へアクセスして、ユーザー名とパスワードにMySQLで作成済のユーザー名とパスワードを入力します。

root権限で入らないと、権限の問題でデータベースを作成したりできません。bitnamiを使用の方は、rootのパスワードはアプリケーションと一緒になっております。ユーザー名とパウワードを入力して「実行」をクリックすると、phpMyAdminへログインできます。ログアウトするにはphpMyAdminの画面左上に表示されているアイコンの中で左から二番目のドアのアイコンをクリックして下さい。

 

phpMyAdminの設定

上図を見てもらうとわかるのですが、下の方に「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。」と「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」というエラーが出ています。これらについて、適切に設定していきます。まずは、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定についてですが、対処方法としてconfig.inc.phpファイルを作成し設定を追加していきます。phpMyAdminをインストールしたディレクトリから、「config.sample.inc.php」をコピーして、名前を「config.inc.php」に変更して下さい。

config.inc.phpファイルの中で「blowfish_secret」という項目に値を設定する必要があります。ファイルの先頭付近に次のような記述があるので、空欄になっているところに、任意の32文字以上の文字列を入力して下さい。

入力したら保存(esc+:wq)して閉じてください。次に、環境保管領域の設定についてですが、設定の保存場所となるデータベースをMySQLに作成してから、設定ファイルに必要な情報を設定します。最初に設定の保存場所となるデータベースを作成します。phpMyAdminをインストールしたディレクトリの中の「sql」ディレクトリの中に作成用のスクリプトである「create_tables.sql」を使います。phpMyAdminの画面上部に表示されている「インポート」をクリックして下さい。

File to importの中にある「ファイルを選択」をクリックし、sqlディレクトリの中に用意されている「create_tables.sql」を選択して下さい。その他、Partial importなどの設定はデフォルトのままでいいです。選択したら、実行をクリックしてください。

実行されると、「phpMyAdmin」という名前のデータベースが作成されたのを確認してください。

続いて先ほどの「config.inc.php」ファイルをviコマンドで編集していきます。「/* Storage detabase and tables */」以下にある「//」でコメントアウトされている「// $cfg[‘Servers’][$i][‘XXX’] = ‘XXX’;」の「//」を全て削除して下さい。

削除したら保存(esc+:wq)して閉じてください。

これで完了です。エラーが表示されなくなったのを確認してください。

 

MySQLのバックアップ

phpMyAdminを使ってMySQLのデータをバックアップする方法を解説します。データベースやテーブル単位でデータをエクスポートすることができ、またエクスポートしたデータをインポートすることが可能です。まずは、データベースをエクスポートする方法について確認します。画面上部にある「エクスポート」メニューをクリックして下さい。

「Export method」はデフォルトで「簡易 – 最小限のオプションだけ表示」がチェックされていますので「詳細 – 可能なオプションを全て表示」の方をチェックして下さい。すると細かい設定可能な項目がいくつか表示されますがここでは対象となるデータベースの選択だけを行ないます。全てのデータベースをバックアップしたい場合は全選択を行なって下さい。特定のデータベースをエクスポートしたい場合には対象となるデータベースをクリックして選択して下さい。(Ctrlキーを押しながらクリックすることで複数同時に選択できます)。

「フォーマット」はデフォルトの「SQL」を選択し、それ以外の設定についてもデフォルトのままで問題ありません。画面一番最後に表示されている「実行」ボタンを押すとエクスポートが開始されます。容量によっては時間がかかったりもします。

次に、MySQLのテーブル単位及び行単位でデータをエクスポートする方法について解説します。画面上部にある「データベース」メニューをクリックすると、データベースの管理画面が表示されます。ここではデータベースを作成したり、削除したりすることもできます。

データベースリストの中からエクスポートしたいテーブルが含まれているデータベース名をクリックして下さい。すると、選択したデータベースのテーブル管理画面が表示されます。

あとは、先ほどと同じく「エクスポート」メニューから対象となるテーブルの選択だけ行い「実行」します。

最後に、データを復旧するためにエクスポートしたファイルをインポートする方法を解説します。インポートに関してもデータベース単位、テーブル単位、行単位、などで行なうことができます。先ほど同様、「データベース」メニューから対象となるテーブルが含まれているデータベース名をクリックして下さい。選択したデータベースのテーブル管理画面が表示されたら、「インポート」メニューをクリックして、インポートするファイルを選択します。

「フォーマット」についてはインポートするファイルのフォーマットに合わせて選択して下さい。今回はデフォルトの「SQL」のままです。その他の設定についてはデフォルトのままでいいので、画面一番最後に表示されている「実行」ボタンを押せば完了です。

 

最後に

phpMyAdminは他にも、たくさんの機能がありますが、説明しきれないので省略させていただきます。このアプリケーションを使えば、MySQLからコマンドベースの操作(CUI)をしなくても、簡単にWebブラウザから分かりやすく操作(Web UI)できるようになりますので、サイトを運営している方はぜひ導入してみてください。ただ、冒頭でも述べましたが、Webから容易にアクセスできますし、有名な管理ツールであるため攻撃の対象とされやすい弱点もあります。そのため、最新のバージョンに更新、厳重なパスワード管理、IPSやWebアプリケーションファイアーウォールを設置する等の対策が必要になりますので、対策についてはお気軽にお問い合わせしてください。

ありがとうございました。

レオンテクノロジーは現在、一緒に働く仲間を募集しております!
興味がある方はこちらから!

セキュリティに関するご相談はこちらから!

こんな記事も読まれています