第19回 MariaDB のインストールと初期設定

公開日:2020-10-15 更新日:2020-10-16

1. 概要

MariaDB のインストールと初期設定を行います。
MariaDB は、MySQL から派生して開発されているデータベースです。

2. 動画



3. インストール

dnf module install mariadb

バージョンの確認
mysql --version  

4. サービスの開始・停止

systemctl status  mariadb  ステータスの確認
systemctl start   mariadb  開始
systemctl stop    mariadb  停止
systemctl restart mariadb  再起動

systemctl enable  mariadb  自動起動

5. root のパスワード設定

mysql_secure_installation

実行すると、現在の root のパスワードを聞かれますので、
最初は、空のままエンターを押してください。

次に、root のパスワードを設定するか聞かれるので、y を入力してエンター。
そして、root のパスワードを入力してください。

それ以降の質問は、全て y で問題ないと思います。

6. MariaDBへ接続

mysql -u ユーザ名 -p

mysql -u root -p

7. 絵文字対応

/etc/my.cnf.d/mariadb-server.cnf の [mysqld] セクションに以下を追加。
character-set-server=utf8mb4

/etc/my.cnf.d/client.cnf の [client] セクションに以下を追加。
default-character-set=utf8mb4

MariaDB を再起動後、以下のコマンドで文字セットを確認して、
以下のように utf8mb4 になっていればOKです。
SHOW VARIABLES LIKE 'character_set%';

+--------------------------+------------------------------+
| Variable_name            | Value                        |
+--------------------------+------------------------------+
| character_set_client     | utf8mb4                      |
| character_set_connection | utf8mb4                      |
| character_set_database   | utf8mb4                      |
| character_set_filesystem | binary                       |
| character_set_results    | utf8mb4                      |
| character_set_server     | utf8mb4                      |
| character_set_system     | utf8                         |
| character_sets_dir       | /usr/share/mariadb/charsets/ |
+--------------------------+------------------------------+

8. テストデータの作成

データベースの作成
CREATE DATABASE test_db;

テーブルの作成
use test_db;
  
CREATE TABLE test_data (
  id INT NOT NULL AUTO_INCREMENT,
  data TEXT NOT NULL,
  PRIMARY KEY (id)
) ENGINE = InnoDB;

データの追加
insert into test_data (data) values ('aaa'), ('bbb'), ('ccc');

データの検索
select * from test_data;

9. ユーザの作成

root ユーザは、全ての操作が行えるため、
複数の人がDBを使う場合や、WebアプリでDBを使う場合は、
root ユーザ以外を使用することを検討してください。

ユーザの作成
CREATE USER ユーザ名            IDENTIFIED BY 'パスワード';

CREATE USER web                 IDENTIFIED BY 'web';  任意のPCから接続可能
CREATE USER 'web'@'localhost'   IDENTIFIED BY 'web';  ローカルからのみ接続可能
CREATE USER 'web'@'192.168.1.6' IDENTIFIED BY 'web';  指定したIPアドレスのPCから接続可能
ホストを指定する場合は、シングルコーテーションで囲ってください。

ユーザの確認。host が % の場合は、任意のPCから接続可能。
select user, host from mysql.user;

ユーザの権限の設定
GRANT 権限                 ON テーブル名     TO ユーザ名;

GRANT SHOW DATABASES       ON *.*               TO web;
GRANT REFERENCES           ON test_db.test_data TO web;
GRANT SELECT               ON test_db.test_data TO web;
GRANT INSERT,UPDATE,DELETE ON test_db.test_data TO web;
その他の権限は、公式サイトの 権限一覧 をご覧ください。

10. Windows から MariaDB へリモート接続

ファイヤーウォールの設定
firewall-cmd --permanent --zone=public --add-service=mysql
firewall-cmd --reload

Windows版 MariaDB のダウンロード
https://mariadb.org/
Package Type : ZIP file
Download をクリック

解凍後、コマンドプロンプトで bin に移動。
以下のコマンドで接続
mysql -h MariaDBのIPアドレス -u ユーザ名 -p
mysql_secure_installation で root によるリモート接続を禁止にした場合は、root 以外のユーザを指定してください。