CentOS 7 に MariaDB のインストールと設定

Posted on カテゴリー: タグ:

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、テーブルにすべての権限を付与する例です。