MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

LinuxでMySQLからMariaDBへ移行する方法|バックアップからデータ復元までの手順を解説

本記事では、Linux環境でMySQLからMariaDBへデータベースを移行する具体的な手順を解説します。MariaDBはMySQLと高いバイナリ互換性を持つため、移行作業は非常にシンプルで、既存のデータをそのまま引き継ぐことができます。

MariaDBへの移行の背景

OracleによるMySQL買収後、コミュニティは新たなデータベース「MariaDB」を開発しました。MariaDBはオープンソースとして公開されており、MySQLとの高い互換性を特徴とします。このため、RHELやCentOS、Fedoraといった主要なLinuxディストリビューションの多くは、すでにMariaDBをMySQLのドロップイン代替として採用しています。

既存のMySQL環境からMariaDBへ移行したい場合は、以下の手順に従ってください。

事前準備:テスト用データベースとテーブルの作成

まず、デモ用としてテスト用のMySQLデータベースとテーブルを作成します。すでに運用中のデータベースがある場合は、このステップをスキップしても問題ありません。

ターミナルからMySQLのrootユーザーでログインします。

# mysql -uroot -p

データベースとテーブルの作成

mysql> CREATE DATABASE test1;
mysql> USE test1;
mysql> CREATE TABLE tab1(name VARCHAR(30), owner VARCHAR(30), species VARCHAR(20), sex CHAR(1));
Query OK, 0 rows affected (0.02 sec)

続いて、動作確認用にいくつかレコードを挿入します。

mysql> INSERT INTO tab1 VALUES('Chandra','Prakash','Kadarla','m'),('Srinvas','Kadarla','Chary','m');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

準備ができたら、MySQLからログアウトします。

ステップ1:MySQLデータベースのバックアップ

移行前に、mysqldumpコマンドですべてのデータベースをバックアップします。これにより、万一のトラブルが発生した場合でもデータを復元できます。

# mysqldump --all-databases --user=root --password --master-data > backupDB.sql

あわせて、設定ファイルも別の場所にコピーして保管しておきます。

# cp /etc/mysql/my.cnf /opt/my.cnf.bak

ステップ2:MySQLパッケージのアンインストール

以下のコマンドでMySQLサービスを停止し、関連パッケージを削除します。

# service mysqld stop
# yum remove mysql-server mysql-client mysql-common

ステップ3:MariaDBパッケージのインストール

MariaDBは主要なLinuxディストリビューションの公式リポジトリで、MySQLの代わりに提供されています。古いバージョンのLinuxを利用している場合でも、公式リポジトリを追加することでインストールできます。

yumリポジトリの設定ディレクトリに、MariaDB用のリポジトリファイルを作成します。

# sudo vi /etc/yum.repos.d/MariaDB.repo

ファイルに以下の内容を記述して保存してください。

[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/5.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

MariaDBサーバーとクライアントをインストールするには、次のコマンドを実行します。

# yum install MariaDB-server MariaDB-client
...
========================================================================================
 Package           Arch      Version                  Repository        Size
========================================================================================
Installing:
 MariaDB-client    x86_64    5.5.49-1.el7.centos      mariadb          8.6 M
 MariaDB-server    x86_64    5.5.49-1.el7.centos      mariadb           40 M
 MariaDB-shared    x86_64    5.5.49-1.el7.centos      mariadb          1.0 M
 ...(依存パッケージ8件)
Transaction Summary
========================================================================================
Install 3 Packages (+8 Dependent packages)
Total download size: 51 M
Is this ok [y/d/N]: y
...
Complete!

必要なパッケージのインストールが完了したら、rootユーザーのパスワードを設定し、バックアップしておいたMySQLの設定ファイルを元の場所へ戻します。

# cp /opt/my.cnf /etc/mysql/

続いて、MariaDBサービスを起動します。

# service mariadb start

ステップ4:データベースのインポートと確認

バックアップしておいたSQLファイルをMariaDBにインポートします。

# mysql -u root -p < backupDB.sql

rootユーザーのパスワードを入力すると、データベースがMariaDBへ取り込まれます。

復元結果の確認

データベースが正しく復元されたかどうかを確認しましょう。以下のコマンドを実行します。

# mysql -u root -p
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test1              |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> USE test1;
MariaDB [test1]> SELECT * FROM tab1;
+---------+---------+---------+------+
| name    | owner   | species | sex  |
+---------+---------+---------+------+
| Chandra | Prakash | Kadarla |    m |
| Srinvas | Kadarla | Chary   |    m |
+---------+---------+---------+------+
2 rows in set (0.00 sec)

テーブルの内容が正しく表示されていれば、MySQLからMariaDBへの移行は完了です。

まとめ

以上のように、「バックアップ → MySQLの削除 → MariaDBのインストール → データ復元」という流れで、MySQLからMariaDBへの移行を簡単なステップで実現できます。MariaDBはMySQLと比べて多数の新機能を備えており、パフォーマンス面でも優れた選択肢です。本記事ではシンプルな構成で検証しましたが、実運用環境でも同様の手順で移行できます。作業前には必ずバックアップを取得し、十分なテストを行ってから本番環境へ適用することをおすすめします。

  1. MySQLでビュー(VIEW)を作成する方法|CREATE VIEWの基本構文と実行例を解説

    MySQLのビュー(VIEW)とは?ビュー(VIEW)とは、SQLクエリの結果セットをもとに定義される「仮想テーブル」のことです。実際のデータを物理的に保存するわけではなく、元のテーブルへの参照情報のみを保持します。そのため、複雑なクエリをシンプルな名前で呼び出せるようにしたり、ユーザーに見せたい列や行だけを限定して提供したりする際に非常に便利です。MySQLでビューを作成するには、CREATE VIEW文を使用します。ビュー作成の基本構文ビューを作成するための基本構文は以下の通りです。create view yourViewName as select * from yourTableNam

  2. LinuxでEvolutionからThunderbirdへデータを移行する完全ガイド

    Linux向けのEvolutionは、連絡先・カレンダー・タスク管理など、多くの機能を最初から備えたオールインワンのPIM(個人情報管理)ソフトです。しかし、アドオンによる拡張性の高さや動作の軽快さではThunderbirdが優れており、乗り換えを検討するユーザーも少なくありません。 この記事では、Evolutionで保存しているメール、タスク、カレンダー、連絡先の各データを、Thunderbirdへ移行する手順を詳しく解説します。すでにEvolutionを使っている方は、ぜひ参考にしてください。 1. Thunderbirdのダウンロードとインストール まだシステムにThunderbir