さくらVPSでCentOS7 ５．MariaDBインストール

#はじめに

自由にテスト出来るLinuxのサーバーがほしくて、さくらVPSで構築してみました。
順次手順をアップしていく予定です。

今回は、MariaDBをインストールします。
MariaDBは、「MySQL」から派生したオープンソースリレーショナルデータベースシステムです。

#目次

1. [申し込み](https://qiita.com/Qsugi/items/9239f93f35967e567b5b)
2. [CentOS7インストール](https://qiita.com/Qsugi/items/4cc4ba9983191a306b19)
3. [SSH接続](https://qiita.com/Qsugi/items/45772c8a71a31bd0d3c8)
4. [Apache・PHPインストール](https://qiita.com/Qsugi/items/bf9740f31b4c42eaad91)
5. MariaDBインストール
6. [FTP接続](https://qiita.com/Qsugi/items/6f383694f60913abb948)
7. [sftp接続](https://qiita.com/Qsugi/items/a8328a116218b058a8bf)
8. [phpMyAdminインストール](https://qiita.com/Qsugi/items/8b6f5b457285140b2ca2)
9. [環境のバックアップ](https://qiita.com/Qsugi/items/a83076eb657157f12f17)
10. [Ruby On Railsインストール](https://qiita.com/Qsugi/items/c7e69a6761f125846bff)
11. [RailsプロジェクトをGitで共同開発](https://qiita.com/Qsugi/items/3c31cfeffee288c05d5e)

#５．MariaDBインストール

##古いバージョンが入っている場合、一度消去する

* バージョンを確認

    ```
$ rpm -qa | grep -i "mariadb"
mariadb-libs-5.5.56-2.el7.x86_64
```

* 5.5は古いので消す

    ```
$ sudo yum -y remove mariadb mariadb-libs
```

##インストール

* リポジトリインストール

    ```
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
```

* MariaDBインストール

    ```
$ sudo yum install MariaDB-server
```

* インストールチェック

    ```
$ rpm -qa | grep -i "mariadb"
MariaDB-common-10.2.14-1.el7.centos.x86_64
MariaDB-server-10.2.14-1.el7.centos.x86_64
MariaDB-compat-10.2.14-1.el7.centos.x86_64
MariaDB-client-10.2.14-1.el7.centos.x86_64
```

##初期設定

* 設定をコピー
    以前は/usr/share/mysql/my-small.cnfをコピーしていましたが、my-small.cnfがなくなったので、コピーせずにserver.cnfを編集します。ので、とりあえずオリジナルを保存。

    ```
$ sudo cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.org
```

* server.cnfを編集。

    ```
$ sudo vi /etc/my.cnf.d/server.cnf
```

    以下の2行を追加

    ```
[client]
default-character-set = utf8mb4    ### 文字コードをutf8
[mysqld]
character-set-server = utf8mb4     ### 文字コードをutf8
```

##サービス登録と起動

* OSを再起動しても起動するようにサービスを登録

    ```
$ sudo systemctl enable mariadb.service
```

* サービスを起動

    ```
$ sudo systemctl start mariadb.service
````

* 起動確認

    ```
$ ps -ef | grep "mysql" | grep -v "grep"
mysql    11092     1  0  4月17 ?      00:11:38 /usr/sbin/mysqld
```

##セキュリティ設定

* 設定実施

    ```
$ sudo mysql_secure_installation
Enter current password for root (enter for none): Enter
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y  ←rootパスワード設定yes
New password:               ←任意のrootパスワードを付ける 
Re-enter new password:      ←上記と同じパスワードを入力（確認用）
Remove anonymous users? [Y/n] Y        ←匿名ユーザ削除Yes
Disallow root login remotely? [Y/n] Y  ←リモートからのrootログイン禁止Yes
Remove test database and access to it? [Y/n] Y ←testデータベース削除
Reload privilege tables now? [Y/n] Y           ←今すぐリロード
```

* ログイン確認

    上記で設定したrootのパスワードでログインしてみます。

    ```
$ mysql -u root -p
Enter password: ←上記設定で付けたパスワード（表示されない）
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 20
Server version: 10.2.14-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)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> exit
Bye
```

##新規ユーザー登録

* rootでログイン

    ```
$ mysql -u root -p
Enter password: ←上記設定で付けたパスワード（表示されない）
```

* 全てのアクセス権限を持った新規ユーザー「dbuser」を登録

    ```
MariaDB [(none)]> grant all privileges on *.* to dbuser@localhost identified by '任意のパスワード';
Query OK, 0 rows affected (0.00 sec)
```

* 「dbuser」ユーザ登録確認

    ```
MariaDB [(none)]> select user from mysql.user where user='dbuser';
+--------+
| user   |
+--------+
| dbuser |
+--------+
1 row in set (0.00 sec)
```

* 「dbuser」で再ログイン

    ```
MariaDB [(none)]> exit
Bye
$ mysql -u dbuser -p
Enter password: ←ユーザ登録時に付けたパスワード（表示されない）
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 24
Server version: 10.2.14-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)]>
```

##DB動作確認

「test」データベースの中に「tbl_test」テーブルを作成し、1レコード追加します。

* 「dbuser」でログイン

    ```
$ mysql -u dbuser -p
Enter password: ←ユーザ登録時に付けたパスワード（表示されない）
```

* 「test」データベース作成

    ```
MariaDB [(none)]> create database test;
Query OK, 1 row affected (0.00 sec)
```

* 「test」データベース確認

    ```
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
```

* 「test」データベースへ接続

    ```
MariaDB [(none)]> use test;
Database changed
MariaDB [test]>
```

    接続すると、プロンプトが「ariaDB [(test)]>」に変わる。

* テーブル作成

    ```
MariaDB [test]> create table tbl_test(num int, name varchar(50));
Query OK, 0 rows affected (0.00 sec)
```

* テーブル確認

    ````
MariaDB [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tbl_test       |
+----------------+
1 row in set (0.01 sec)
```

* レコード追加

    ```
MariaDB [test]> insert into tbl_test values(1, '山田太郎');
Query OK, 1 row affected (0.01 sec)
```

* レコード確認

    ```
MariaDB [test]> select * from tbl_test;
+------+--------------+
| num  | name         |
+------+--------------+
|    1 | 山田太郎     |
+------+--------------+
1 row in set (0.00 sec)
```

* ログアウト

    ```
MariaDB [test]> exit
Bye
```

#次回

次回はFTP接続の設定を行います。

前回：[Apache・PHPインストール](https://qiita.com/Qsugi/items/bf9740f31b4c42eaad91)
次回： [FTP接続](https://qiita.com/Qsugi/items/6f383694f60913abb948)