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

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

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

関連する記事

  • R言語 CRAN Task View:政府統計&調査の方法R言語 CRAN Task View:政府統計&調査の方法 CRAN Task View: Official Statistics & Survey Methodologyの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Matthias Templ Contact: matthias.templ at […]
  • 統計的因果推論による傾向スコアとIPW推定量の基本的な考え方統計的因果推論による傾向スコアとIPW推定量の基本的な考え方 [latexpage] 統計的因果推論による因果効果を調べる手段として、傾向スコアとIPW推定量という概念があります。ここでは、なぜ傾向スコアを考えるのか、傾向スコアの逆数の重み付けはどのような意味があるのかを、複雑な数式を用いずに具体例を通してご説明します。 さっそくですが、次の具体例を考えます。 […]
  • Ubuntu Server 20.04上のOpalのインストール後に行う設定Ubuntu Server 20.04上のOpalのインストール後に行う設定 Opalのインストールが完了しても、ただちに使える状態にはなりません。 使える状態にするためには、データベースの登録およびR言語の設定が必要になります。 Opalは、データベースのバックエンドとして、MongoDBおよびMySQL、MariaDB、PostgreSQLをサポートしています。 ここでは、MariaDBを指定する方法をお伝えします。 環境の確認 今回の作 […]
  • R 文字列の行を指定した幅で強制的に折り返す方法R 文字列の行を指定した幅で強制的に折り返す方法 R […]
  • Python 科学技術関連のパッケージ一覧Python 科学技術関連のパッケージ一覧 PyPIで公開されているパッケージのうち、科学技術関連のパッケージの一覧をご紹介します。 具体的には、次のフィルターによりパッケージを抽出しました。 Intended Audience :: Science/Research Topic :: […]
WindowsでHeidiSQLを使用してMariaDBをバックアップ・リストアするの方法