LoginSignup
7
5

More than 5 years have passed since last update.

MySQLとMariaDBで実験

Posted at

MySQL と MariaDB

注: 私はMySQLとMariaDBについて、何も知りません

MariaDBはMySQL互換というイメージを持っている。
mysqlコマンドでつながるし、/etc/mysql/my.cnfを参照している。

もしかして中身一緒なんじゃないかと思ったので以下のように実験をした。

実験内容

  1. docker で mysqlのDBを作り、データファイル的なもの(/var/lib/mysql)はvolumeに保存。
  2. mysqlコマンドで、データベース、テーブル、レコードを作成。
  3. mysqlのコンテナを削除。
  4. mariadbのコンテナを作成。データファイル的なものは先程のボリュームを指定。
  5. mysqlコマンドでselect出来るか確認。

実験手順

#!/bin/bash

mkdir db
docker run -d -p "3306:3306" -v "$(readlink -f ./db):/var/lib/mysql:rw" -e MYSQL_ROOT_PASSWORD=password --name db mysql

sleep 20

mysql -u root -ppassword -h 127.0.0.1 << EOF
create database test1;
use test1;
create table test_table(name varchar(255));
insert into test_table(name) values ('fooo');
EOF

docker stop db
docker rm db

docker run -d -p "3306:3306" -v "$(readlink -f ./db):/var/lib/mysql:rw" -e MYSQL_ROOT_PASSWORD=password --name db mariadb

sleep 20


mysql -u root -ppassword -h 127.0.0.1 << EOF
select * from test1.test_table;
EOF

環境はUbuntu Server 14.04 + docker 1.7.0

結果

こんなんなりました

ubuntu@ubuntu:~$ bash -x test.sh
+ mkdir db
++ readlink -f ./db
+ docker run -d -p 3306:3306 -v /home/fujioka/db:/var/lib/mysql:rw -e MYSQL_ROOT_PASSWORD=password --name db mysql
e64ce620ae9b849dde62338e63bd35375f36221ed989142bda40dfe31b8582b3
+ sleep 20
+ mysql -u root -ppassword -h 127.0.0.1
+ docker stop db
db
+ docker rm db
db
++ readlink -f ./db
+ docker run -d -p 3306:3306 -v /home/fujioka/db:/var/lib/mysql:rw -e MYSQL_ROOT_PASSWORD=password --name db mariadb
475af5ed11ce71d37075b87ce6aae7482d304bfde95bc9cb00d31613336ed3e2
+ sleep 20
+ mysql -u root -ppassword -h 127.0.0.1
name
fooo
ubuntu@ubuntu:~$

とりあえず、ちゃんとselect出来たように見えます。(最後のfoooは、test1.test_tableにinsertしたもの)

まとめ

MySQLとMariaDBは内部的なファイルの持ち方も同じで、差が無いように見える。
が、engineがInnoDBだからじゃないのか?とか、MariaDBのdockerのイメージがマイグレーション的なことをしているんじゃないのか?とか、これだけではわからないことが沢山有る。
なので、同じとは断言できないかなぁと思うものの、少なくともdockerのMySQLのイメージからMariaDBのイメージへの乗り換えはんたんに出来ると思われる。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5