初めてMariaDBを試すには

MariaDBは、MySQLから派生したオープンソースのリレーショナルデータベース管理システム(RDBMS)です。
本稿ではLinuxのUbuntu 24.04環境で、MariaDBの導入と基本操作について、詳しく説明します。

インストールしよう

公式のリポジトリから次のコマンドを実行します。

$ sudo apt install mariadb-server mariadb-client
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下の追加パッケージがインストールされます:

~ <省略>

MariaDBのバージョンを確認します。
プロンプトが表示されたら exit と入力します。

$ sudo mysql -v
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04

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

Reading history-file /root/.mysql_history
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit
Writing history-file /root/.mysql_history
Bye

DBを設定しよう

文字セットを指定します。
/etc/mysql/mariadb.conf.d/50-server.cnf をエディタで編集します。
下の①の行をコメントアウトし、②の行を追加します。

セキュリティに関する設定を行います。
所々で入力を促されます。筆者は以下のように入力しました。

 sudo mysql_secure_installation 
[sudo] lin のパスワード: 

~ <省略>

Enter current password for root (enter for none):  ← [Enter]
OK, successfully used password, moving on...

~ <省略>

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
 ... Success!

~ <省略>

Change the root password? [Y/n] Y
New password:  ← MariaDBの管理者の「新」パスワードを入力
Re-enter new password:  ← パスワードを再入力
Password updated successfully!
Reloading privilege tables..
 ... Success!

~ <省略>

Remove anonymous users? [Y/n] Y
 ... Success!

~ <省略>

Disallow root login remotely? [Y/n] Y
 ... Success!

~ <省略>

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

MariaDBであそんでみよう

MariaDBの管理者(root)にログインします。パスワードはLinux側のパスワードを最初に入力し、次にMariaDBのrootのパスワードを入力します。

$ sudo mysql -u root -p
[sudo] lin のパスワード:  ← Linuxのパスワード
Enter password:  ← MariaDBの管理者のパスワード
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 43
Server version: 10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04

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)]> 

「tmpdb」というデータベース(DB)を作成します。

MariaDB [mysql]> create database tmpdb;
Query OK, 1 row affected (0.000 sec)

新たにDBユーザを作成します。ユーザ名を「seshat」、パスワードを「password」としました。この部分は任意のユーザ名とパスワードに変更ください。
続いてseshatがtmpdbにアクセスできるようにします。
最後に exit で終了します。

MariaDB [tmpdb]> create user 'seshat'@'localhost' identified by 'password'
    -> ;
Query OK, 0 rows affected (0.001 sec)

MariaDB [tmpdb]> grant all on tmpdb.* to 'seshat'@'localhost';
Query OK, 0 rows affected (0.002 sec)

MariaDB [tmpdb]> exit;
Bye

今度は seshat ユーザでDBにログインしてみます。

$ mysql -u seshat -p ← 上で作成したDBのユーザ名
Enter password:  ← 上で作成したDBのユーザ名に対するパスワード

~ <省略>

MariaDB [(none)]> 

プロンプトが表示されたら、ログイン成功です。
続けて tmpdb にテーブルを作成します。no という整数のカラムを持つテーブルです。

MariaDB [(none)]> use tmpdb;
Database changed
MariaDB [tmpdb]> create table tbl01 (no int);
Query OK, 0 rows affected (0.007 sec)

DBオブジェクトの定義情報を表示します。

ariaDB [tmpdb]> desc tbl01;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| no    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.001 sec)

ここからいろいろな方法で、noカラムに整数値を格納したレコードを作成します。

ariaDB [tmpdb]> insert into tbl01 (no) values (1);
Query OK, 1 row affected (0.005 sec)

MariaDB [tmpdb]> insert into tbl01 (no) values (2),(3);
Query OK, 2 rows affected (0.001 sec)
Records: 2  Duplicates: 0  Warnings: 0

MariaDB [tmpdb]> insert tbl01 set no=4;
Query OK, 1 row affected (0.001 sec)

上は、noに1から4までを格納したレコードを作成したところです。

MariaDB [tmpdb]> update tbl01 set no=400 where no=4;
Query OK, 1 row affected (0.001 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [tmpdb]> select * from tbl01;
+------+
| no   |
+------+
|    1 |
|    2 |
|    3 |
|  400 |
+------+
4 rows in set (0.000 sec)

上は、noが4のレコードを400に変更し、tbl01のレコードをすべて表示したところです。

MariaDB [tmpdb]> delete from tbl01 where no>100;
Query OK, 1 row affected (0.002 sec)

MariaDB [tmpdb]> select * from tbl01;
+------+
| no   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.001 sec)

さらにnoが100より大きいレコードを削除しました。結果としてnoが400のレコードが削除されました。

さいごに

MariaDBは、MySQLの機能を強化しつつ、オープンソースの利点を活かしたデータベースとして、多くの企業や開発者に支持されています。
本記事をきっかけに、MariaDBに興味を持っていただけると幸いです。