【MySQL】ダンプとリストア
ここではMySQLで、ダンプとリストアするコマンドを紹介しています。
ダンプとリストアするコマンド
ダンプするコマンド
mysqldumpコマンドを使うことで、データベースやテーブルを保存・バックアップすることが出来ます。
mysqldumpコマンドの基本的な使い方は次の通りです。
mysqldump -u ユーザ名 -p [データベース名] [-h ホスト名] [テーブル名1・・・] > ファイル名
実際に試してみると次のような結果になりました。
C:\wk>mysqldump -u user -p db1 > testdump.sql
Enter password: *****
次のようにテーブル名を指定することで、任意のテーブルのみダンプすることが可能です。
C:\wk>mysqldump -u user -p db1 tab1 > testdump2.sql
Enter password: *****
リストアするコマンド
リストアするときは、ダンプしたファイル名を使って、次のようにコマンドを入力します。
mysql -u ユーザ名 -p データベース名 < ファイル名
実際に試してみると次のような結果になりました。
C:\wk>mysql -u user -p db1 < testdump.sql
Enter password: *****
ダンプファイルの中身について
ダンプファイルとは、mysqldumpコマンドを使って、データベースやテーブルを保存・バックアップしたファイルのことです。
例えば次のようにdb1データベースのtab1テーブルをダンプします。
C:\wk>mysqldump -u user -p db1 tab1> tab1dump.sql
Enter password: *****
ダンプファイルには、次のようにテーブルの定義SQLが保存されていました。
--
-- Table structure for table `tab1`
--
DROP TABLE IF EXISTS `tab1`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tab1` (
`emp_id` varchar(10) DEFAULT NULL,
`emp_name` varchar(100) DEFAULT NULL,
`dept` varchar(10) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
また、次のようにテーブルに登録されていたデータを復元させるためのSQLが保存されていました。
--
-- Dumping data for table `tab1`
--
LOCK TABLES `tab1` WRITE;
/*!40000 ALTER TABLE `tab1` DISABLE KEYS */;
INSERT INTO `tab1` VALUES ('00001','Suzuki','HR',28),('00002','Tanaka','SALES',25),('00003','Kizaki','SALES',35),('00004','Tanaka','DEV',45),('00005','Kizaki','DEV',55),('00006','Nakata','DEV',35);
/*!40000 ALTER TABLE `tab1` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;