MariaDBはMySQLより分岐したリレーショナルデータベース管理システムです。MariaDBはMySQLに互換性を持ち、 パフォーマンス・セキュリティ面 が向上しています。
MariaDBのインストール
# yum install -y mariadb mariadb-server
「yum」で「mariadb」「mariadb-server」をインストールします。
# systemctl start mariadb
MariaDBを起動します。
# systemctl enable mariadb
OSが起動するときにMariaDBも一緒に起動するように登録します。
# mysql --version
mysql Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1
正しくインストールされたかバージョンから確認します。
MariaDBの初期設定
rootパスワードの設定
# mysql_secure_installation
初期設定が対話モードで始まるので設定していきます。
インストール直後はrootパスワードも設定されておりません。
rootパスワードを設定し、残りはEnterを入力すれば妥当な設定になります。(EnterでYを入力したことになります)
# 1つ目: 現在のrootパスワードを入力(初めはパスワードが無いのでEnterでOK)
Enter current password for root (enter for none): # Enter
# 2つ目: rootパスワードを設定しますか?
Set root password? [Y/n] # Enter
# 3つ目: 新しいrootパスワードを設定
New password: # 新しいパスワードの入力
# 4つ目: 新しいパスワードの確認
Re-enter new password: # 新しいパスワードを再入力
# 5つ目: 匿名ユーザ(初期設定などのために誰でもログインできるユーザ)を削除するか
Remove anonymous users? [Y/n] # Enter
# 6つ目: rootのリモートログインを禁止するか
Disallow root login remotely? [Y/n] # Enter
# 7つ目: testデータベース(テスト用の誰でもアクセス可能なデータベース)を削除するか
Remove test database and access to it? [Y/n] # Enter
# 8つ目: 権限を管理するテーブルをリロードして、設定をすぐに反映するか
Reload privilege tables now? [Y/n] # Enter
文字コードを設定
# vi /etc/my.cnf.d/server.conf
サーバーの設定ファイルを変更します。
<<< 省略 >>>
[mariadb]
character-set-server = utf8mb4 #<- これを追記
<<< 省略 >>>
文字コードを「utf8mb4」にします。
# vi /etc/my.cnf.d/client.conf
クライアント側の設定ファイルを変更します。
<<< 省略 >>>
[client-mariadb]
default-character-set = utf8mb4 #<- これを追記
<<< 省略 >>>
文字コードを「utf8mb4」にします。
systemctl restart mariadb
MariaDBのサービスを再起動して設定を反映させます。
文字コードが変更されていることを確認
$ mysql -u root -p # MariaDBにログイン
Enter password: # rootパスワードを入力
MariaDBにログインする。
MariaDB [(none)]> show variables like "chara%";
+--------------------------+----------------------------+
| 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/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
文字コードの設定を参照します。
DBユーザーの追加
MariaDBにログインしていない場合は、ログインしてDBユーザーを追加します。
$ mysql -u root -p # MariaDBにログイン
Enter password: # rootパスワードを入力
ユーザー追加の構文
create user 'ここにユーザ名'@'localhost' identified by 'ここにパスワード';
ユーザー追加の例
create user 'mariadbuser'@'localhost' identified by 'AwJQ#9hmq@6AViinAj2a';
追加例)
ユーザー:mariadbuser
パスワード:AwJQ#9hmq@6AViinAj2a
ユーザーに権限を付与
基本的な構文
grant 権限 on DB名.テーブル名 to user名;
全DBの全テーブルに対して、権限を与える
grant 権限 on *.* to user名;
指定したDBの全テーブルに権限を与える
grant 権限 on DB名.* to user名;
指定したDBの指定したテーブルに権限を与える
grant 権限 on DB名.テーブル名 to user名;
権限の種類
権限 | 意味 |
ALL | 全ての権限 |
SELECT | SELECT使用権限 |
ALTER | ALTER TABLE使用権限 |
INSERT | INSERT使用権限 |
UPDATE | UPDATE使用権限 |
DELETE | DELETE使用権限 |
CREATE | CREATE TABLE使用権限 |
DROP | DROP TABLE使用権限 |
権限の追加例
grant all on *.* to mariadbuser@localhost;
すべてのDB、テーブルにすべての権限を付与する例です。