【データベース】MariaDB・MySQL概要

Database
この記事は約5分で読めます。

MariaDBとは

MariaDBは、MySQLの開発者の一部がスピンアウトして新たに作り始めた、MySQL互換(一部)のデータベースです。

もともとMySQLはオープンソースなので、基本的な機能やコマンドなどはおおよそ同じです。

ライセンスの違いなどから、最新のLinuxディストリビューションでは、MySQLの代わりにMariaDBが使われることが多くなってきています。

インストールコマンドの例
# yum install mariadb mariadb-server

MariaDBの起動コマンド
# systemctl start mariadb

データベースの操作

MariaDBを操作するには、mysqlコマンドを使います。

mysqlコマンドはMariaDBをインストールすれば自動的にインストールされます。

MariaDBなのにmysqlコマンドを使用して変な感じがするかもしれませんが、歴史的な経緯がありそうなっています。

MariaDBにログインするコマンド
# mysql -u <ユーザー名> -p

初期状態ではrootユーザーしかないのでrootを使用するコマンド例
# mysql -u root -p

パスワード未設定の場合は、そのままEnterクリック
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

ログインすると次のようなプロンプトが表示され、ここにコマンドを入力して操作できるようになります
MariaDB [(none)]>
セキュリティのためrootパスワードを変更するコマンド
MariaDB [(none)]> update mysql.user set password=password('<設定したいパスワード>') where user ='root'; flush privileges;

セキュリティのためrootパスワードを変更するコマンド例
MariaDB [(none)]> update mysql.user set password=password('mariadbpassword') where user ='root'; flush privileges;

MariaDBやMySQLでは、データをデータベースという単位で管理します。

何かデータを保存するためには、MariaDBを利用するソフトウェアごとに「データベース」という枠組みを作り、そこにアクセスするための「ユーザー名」「パスワード」を設定する必要があります。

設定値意味
ユーザー名test01DBに接続する時のユーザー名
パスワードtest01passwordDBに接続の時のパスワード
データベース名testdbデータベースの名称

データベースを作成する

test01というユーザーを、test01passwordというパスワードで作成するコマンド例
MariaDB [(none)]> create user 'test01'@'localhost' IDENTIFIED BY 'test01password';
testdbというデータベースを作成するコマンド例
MariaDB [(none)]> create database testdb;
test01ユーザーに対して、データベースtestdbの全権限を与えるコマンド例
MariaDB [(none)]> grant all privileges on testdb.* to 'test01'@'localhost'; FLUSH PRIVILEGES;
作成したデータベースを確認するコマンド
MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)
終了するコマンド
MariaDB [(none)]> exit
Bye

データベースのバックアップをとる

/tmpディレクトリ下にwordpressdb.sqlというファイルとしてバックアップを作成
$ mysqldump --databases wordpressdb -u root -p > /tmp/wordpressdb.sql
バックアップしたデータをmysqlコマンドで移行する
$ mysql -h <データベースのエンドポイント> -u root -p < /tmp/wordpressdb.sql
※-hで指定しているのは移行先DBのエンドポイント、-uはユーザー名、-pはパスワードを訪ねられます
MariaDBのアンインストール
$ sudo -i yum remove mariadb-server