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ファイルを指定します。ここでは、先ほどエクスポートしたファイルを指定します。また、エンコードの指定が行えますので、適切なエンコードを指定します。

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

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

関連する記事

  • 相関係数相関係数 相関係数とは2変量のデータ間の関係性の強弱を計る統計学的指標である。相関係数rがとる値の範囲は-1≦r≦1である。相関係数rの値により以下のように呼ばれる。 -1≦r<0ならば負の相関 r=0ならば無相関 0<r≦1ならば正の相関 一般的に、強弱も合わせて以下のように呼ばれる。 […]
  • R 関数に時間制限を設ける方法 ある処理にとても時間が掛かるため、一定時間経過後はその処理を途中で打ち切りたいときがある。 例えば、for文で、あるループだけが重いため全体として時間が掛かってしまう場合、その処理を一旦スキップしてfor文の先に処理を進めたい、などである。 ここでは、そのひとつの解決策として、関数に時間制限を設けて、一定時間経過後はその関数を強制終了するコードをご紹介する。 ただし […]
  • matplotlibで箱ひげ図を表示する方法matplotlibで箱ひげ図を表示する方法 Python3でmatplotlibを用いて、箱ひげ図を表示する方法をお伝えする。 Ubuntu14.04環境で動作することを確認している。 一つ注意点として、日本語に対応させるために、ここでは「IPAexGothic」を用いている。 import matplotlib as mpl import matplotlib.pyplot as […]
  • Linux:Eclipse+CDTでC/C++開発Linux:Eclipse+CDTでC/C++開発 Linux環境においてEclipseでCDTを用いてC/C++開発を行う場合にはまったことを備忘記録として残しておく。 CDTインストール直後、関数が認識されないエラーの対処 CDTのインストール後にすぐにC++開発を行おうとしてコードを入力した場合、関数が認識されずエラーが出る。この場合は一度Eclipseを再起動すれば、次回からきちんと認識される。 外部ヘッダーファ […]
  • R ggplot2を用いた2軸グラフの簡単な作成方法R ggplot2を用いた2軸グラフの簡単な作成方法 Rのggplot2を用いて、2軸グラフを作成するための簡単な方法をお伝えします. 2軸グラフは、グラフの縦軸(y軸)が左側と右側の両方にあり、それぞれ単位が異なるグラフのことを言います。 2軸グラフは、一般的に推奨されてはおりません。 そのため、ggplot2パッケージを用いた2軸グラフを作成するためには、scale_y_continuous()関数のsec.axi […]
WindowsでHeidiSQLを使用してMariaDBをバックアップ・リストアするの方法