WindowsでHeidiSQLを使用してMariaDBをバックアップおよびリストア(復元)する方法をお伝えいたします。

MariaDBのバックアップ方法はいくつかありますが、今回ご紹介する方法は、ダンプファイルの作成という方法になります。MariaDBのダンプファイルの作成は、通常、CUI(黒い文字だけの画面)でmysqldumpというコマンドラインツールを用いて行います。MariaDBをWindowsにインストールすると、C:\Program Files\MariaDB 10.2\binディレクトリに、mysqldump.exeという実行ファイルが配置されます。これがコマンドラインツールです。

ここでは、CUIでmysqldumpを実行するのではなく、HeidiSQLというGUIツールを用いてダンプファイルのバックアップおよびリストアする方法をご紹介します。

準備

説明用のデータベースの作成から始めます。
スタートメニューから「MySQL Client (MariaDB 10.2(x64))」をクリックします。

表示された画面にrootユーザーのパスワードを入力を入力し、データベースおよびそのテーブルを作成します。以下は、コマンドの説明です。「–」で始まる行はコメントを表しておりますので、実際には入力する必要はありません。


-- sampleデータベースを作成します
CREATE DATABASE sample;

-- sampleデータベースの使用を宣言します
USE sample;

-- personsテーブルを作成します
CREATE TABLE persons (id INT, name VARCHAR(20));

-- personsテーブルにデータを挿入します
INSERT INTO persons (id, name) VALUES (1, 'ken'), (2, 'yumi'), (3, 'mike');

-- personsテーブルのデータを確認します
SELECT id, name FROM persons;

HeidiSQLでバックアップ

まず最初に、HeidiSQLを立ち上げます。

今回は、rootユーザーで接続します。そのため、rootユーザーのパスワードを入力した後、「開く」をクリックします。

左側にデータベースの一覧が表示されていることが確認できます。

今回は、sampleデータベースをバックアップしようと思います。

メニューバーのツールから「データベースをSQLとしてエクスポート」をクリックします。

左側の領域で、sampleデータベースにチェックを入れます。右側の領域で、「SQLエクスポート」タブをクリックし、どのようにしてバックアップファイルを作成するかを指定します。リストアするときに、どのようにしてリストアするのかを指定するのではなく、事前に、どのようにしてリストアをするのかをバックアップファイルに記載するということにご注意ください。指定した内容は次になります。

  • データベース:すでに同一のデータベースが存在していた場合は、削除して新たに作成します
  • テーブル:すでに同一のテーブルが存在していた場合は、削除して新たに作成します
  • データ:既存データを削除して、新たにデータを挿入します
  • 最大INSERTサイズ:データ挿入時のコマンドの長さを指定します
  • 出力:単一の.sqlファイルとして出力します
  • ファイル名:バックアップファイルのファイルパス

条件を確認して、問題が無ければ「エクスポート」をクリックして、バックアップファイルを作成します。ちなみに、HeidiSQLを管理者権限で実行していない場合は、異なるディレクトリへエクスポートできないことにご注意ください。その場合は、デスクトップなどにエクスポートしてください。

エクスポートされた.sqlファイルをメモ帳で開くと、次のようになっております。


-- --------------------------------------------------------
-- ホスト:                          127.0.0.1
-- サーバーのバージョン:                   10.2.8-MariaDB - mariadb.org binary distribution
-- サーバー OS:                      Win64
-- HeidiSQL バージョン:               9.4.0.5125
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;


-- sample のデータベース構造をダンプしています
DROP DATABASE IF EXISTS `sample`;
CREATE DATABASE IF NOT EXISTS `sample` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `sample`;

--  テーブル sample.persons の構造をダンプしています
DROP TABLE IF EXISTS `persons`;
CREATE TABLE IF NOT EXISTS `persons` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- テーブル sample.persons: ~3 rows (approximately) のデータをダンプしています
DELETE FROM `persons`;
/*!40000 ALTER TABLE `persons` DISABLE KEYS */;
INSERT INTO `persons` (`id`, `name`) VALUES
	(1, 'ken'),
	(2, 'yumi'),
	(3, 'mike');
/*!40000 ALTER TABLE `persons` ENABLE KEYS */;

/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

HeidiSQLでリストア

エンコードを指定せずにリストア

HeidiSQLでエンコードを指定せずにリストアするには、メニュバーのファイルから「SQLファイルを実行」をクリックします。ファイルを選択する画面が表示されますので、.sqlファイルを指定します。ここでは、先ほどエクスポートしたファイルを指定します。

左側の領域を最新の情報に更新するために、左側の領域のツリーのトップで、右クリックからコンテキストメニューを表示させ、「最新の情報に更新」をクリックします。

sampleデータベースがリストアされていることが確認できます。

エンコードを指定してリストア

HeidiSQLでエンコードを指定してリストアするには、メニュバーのファイルから「SQLファイルを読み込み」をクリックします。

ファイルを選択する画面が表示されますので、.sqlファイルを指定します。ここでは、先ほどエクスポートしたファイルを指定します。また、エンコードの指定が行えますので、適切なエンコードを指定します。

ファイルの容量が小さい場合には、下図の青枠で囲まれた部分に読み込まれますので、赤枠で囲ったボタンをクリックすると、ファイルが取り込まれます。

ファイルの容量が大きい場合には、下図のような案内が表示されますので、特別な事業がない限りは「ファイルを直接実行」をクリックすると、ファイルが取り込まれます。

関連する記事

  • RaspberryPi Bluetoothスピーカーで音を出す方法 Raspberry Pi 3 Model B を用いてBluetoothスピーカーと接続した後、aplayコマンドがエラー出して音が出なかった問題の対応を備忘録として残しておく。 以下はすべてSSH接続によるCUIで行っている。 環境:Raspbian GNU/Linux 8.0 […]
  • R スティール・ドゥワス(Steel-Dwass)法R スティール・ドゥワス(Steel-Dwass)法 スティール・ドゥワス(Steel-Dwass)法とは、テューキー(Tukey)法の多重比較に対応するノンパラメトリックな多重比較である。 スティール・ドゥワス法を簡単に言うと、正規分布を仮定しない各群間を順位を用いて多重比較で調べる方法である。 Rで、スティール・ドゥワス法を使う場合は、「スティール・ドゥワス(Steel-Dwass)の方法による多重比較」のページにソ […]
  • R knitrできれいな多重クロス集計をPDFで出力する方法R knitrできれいな多重クロス集計をPDFで出力する方法 knitrパッケージのkable関数を使えば、matrixやdata.frameなどの表形式をきれいに出力してくれるが、ftable関数を用いた多重クロス集計の結果は、kable関数を使うことができない。 これは非常に残念なので、他の方法できれいに出力する方法をお伝えする。ちなみにこの方法ではPDF出力のみの対応となるので注意してほしい。 手順を簡単に説明すると、 […]
  • R言語 CRAN Task View:極値解析R言語 CRAN Task View:極値解析 CRAN Task View: Extreme Value Analysisの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Christophe Dutang, Kevin Jaunatre Contact: Christophe.Dutang at […]
  • 度数分布表とヒストグラム度数分布表とヒストグラム 数値データの集合をただ眺めても、そのデータの特徴をつかむのは大変難しい。しかし、そのデータを表にまとめたもの、またはグラフにすると一目瞭然だ。特に、グラフにしたものは、大変分かりやすい。表にまとめたものを度数分布表、グラフにしたものをヒストグラムという。 では、早速具体的に見ていく。 度数分布表 度数分布表とは、以下の表のことを言う。ここで用いたデータは、統計Rに付 […]
WindowsでHeidiSQLを使用してMariaDBをバックアップ・リストアするの方法