データベースのエクスポート

広告

phpMyAdminを使ってMySQLのデータベースをエクスポートする方法について確認します。MySQLサーバに接続後、画面上部にある「エクスポート」メニューをクリックして下さい。

p1-1

「エクスポート方法」や「フォーマット」を指定する画面が表示されます。

p1-2

「エクスポート方法」はデフォルトでは「簡易 - 最小限のオプションだけ表示」がチェックされていますので「詳細 - 可能なオプションを全て表示」の方をチェックして下さい。すると細かい設定項目が表示されます。

p1-3

設定可能な項目がいくつか表示されますがここでは対象となるデータベースの選択だけを行ないます。

p1-4

全てのデータベースをバックアップしたい場合は全選択を行なって下さい。特定のデータベースをエクスポートしたい場合には対象となるデータベースをクリックして選択して下さい。(Ctrlキーを押しながらクリックすることで複数同時に選択できます)。

p1-5

続いて「フォーマット」です。様々な形式が選択可能ですが、今回はデフォルトで設定されている「SQL」を選択します。

p1-6

それ以外の設定については今回はデフォルトのままとしました。では画面一番最後に表示されている「実行する」ボタンを押して下さい。

p1-7

選択したデータベースがエクスポートされファイルとしてダウンロードが行なわれます。任意の場所に保存して下さい。デフォルトの設定ではファイル名は「MySQLのサーバ名.sql」となります。ローカルホストで動かしていれば「localhost.sql」です。これでエクスポートは完了です。

エクスポートしたファイルの中身

ではエクスポートしたファイルにどのようなことが記述されているか確認してみます。今回は2つのデータベースを「SQL」フォーマットでエクスポートしています。ダウンロードしたファイルをテキストエディタで開いて下さい。

-- phpMyAdmin SQL Dump
-- version 3.4.7.1
-- http://www.phpmyadmin.net
--
-- ホスト: localhost
-- 生成時間: 2011 年 11 月 29 日 00:27
-- サーバのバージョン: 5.5.9
-- PHP のバージョン: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- データベース: `personal`
--
CREATE DATABASE `personal` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `personal`;

-- --------------------------------------------------------

--
-- テーブルの構造 `customer`
--

CREATE TABLE IF NOT EXISTS `customer` (
  `id` int(11) NOT NULL,
  `name` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- テーブルのデータをダンプしています `customer`
--

INSERT INTO `customer` (`id`, `name`) VALUES
(1, '株式会社サンプル商事'),
(2, 'サンプル工務店');

-- --------------------------------------------------------

--
-- テーブルの構造 `friend`
--

CREATE TABLE IF NOT EXISTS `friend` (
  `id` int(11) NOT NULL,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- テーブルのデータをダンプしています `friend`
--

INSERT INTO `friend` (`id`, `name`) VALUES
(1, '山田'),
(2, '伊藤'),
(3, '山下'),
(4, '山田'),
(5, '伊集院'),
(6, '近藤');
--
-- データベース: `salesdb`
--
CREATE DATABASE `salesdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `salesdb`;

-- --------------------------------------------------------

--
-- テーブルの構造 `uriage`
--

CREATE TABLE IF NOT EXISTS `uriage` (
  `id` int(11) NOT NULL,
  `shouhin` varchar(20) NOT NULL,
  `kingaku` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- テーブルのデータをダンプしています `uriage`
--

INSERT INTO `uriage` (`id`, `shouhin`, `kingaku`) VALUES
(1, 'リンゴ', 800),
(2, 'バナナ', 1200);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

最初に"personal"データベースの作成を行うCREATE DATABASE文。そしてデータベースに含まれているテーブルを作成するためのCREATE TABLE文とテーブルに格納されているデータを挿入するためのINSERT INTO文が記述されています。同じように"uriage"データベースに関しても同じことが記述されていることが分かります。

このようにデータベースを「SQL」フォーマットでエクスポートした場合は、対象となるデータベースをそのまま復元するためのSQL文が記録されています。

( Written by Tatsuo Ikura )