MariaDB Install(CentOS7.3)

OSはCentOS7.3を使用します。
ほぼ初期の状態からの設定メモです。

$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

CentOS7からMySQLがMariaDBに変更されています。
今後使用するSQLサーバとしては、MariaDBが使われることになりそうです。
通信プロトコル周りでは、同じプロトコルが利用されるようですので、Webアプリケーションなど、ユーザレベルではあまり差を意識しなくせ済みそうですし、MariaDBは標準でスレッドプールが利用できるので、簡単なSQL利用であればパフォーマンスなど有益に働きそうです。
ただ型の扱いなどが完全互換ではないので、そのあたりは確認しましょう。

ということで、MariaDBをインストールしてみます。

インストール

管理者で関連するパッケージをインストールします。

$ su -
# yum install -y mariadb mariadb-server

依存するパッケージを含めたインストールされるパッケージのリストです。

================================================================================
 Package                      Arch        Version               Repository
                                                                           Size
================================================================================
Installing:
 mariadb                      x86_64      1:5.5.52-1.el7        base      8.7 M
 mariadb-server               x86_64      1:5.5.52-1.el7        base       11 M
Installing for dependencies:
 perl-Compress-Raw-Bzip2      x86_64      2.061-3.el7           base       32 k
 perl-Compress-Raw-Zlib       x86_64      1:2.061-4.el7         base       57 k
 perl-DBD-MySQL               x86_64      4.023-5.el7           base      140 k
 perl-DBI                     x86_64      1.627-4.el7           base      802 k
 perl-IO-Compress             noarch      2.061-2.el7           base      260 k
 perl-Net-Daemon              noarch      0.48-5.el7            base       51 k
 perl-PlRPC                   noarch      0.2020-14.el7         base       36 k

Transaction Summary
================================================================================
Install  2 Packages (+7 Dependent packages)

Total download size: 21 M
Installed size: 107 M

設定ファイル、my.cnf

データベースの設定ファイルである、my.cnfを作ります。
初期設定でも当然ちゃんと動作しますが、
サンプルがありますので、こちらを参考に設定ファイルを作ります。
/usr/share/mysql/ 以下にサンプルの設定ファイルがあるので、お好みでコピーします。
いくつか種類がありますが、以下のようになっているようです。

設定ファイル 搭載メモリ メモ
my-small.cnf ~64MB 小規模なDB向け
my-medium.cnf ~128MB 共用サーバでの小規模なDB
my-large.cnf ~512MB MySQLを主とするサーバ
my-huge.cnf 1G~2G MySQL専用サーバ
my-innodb-heavy-4G.cnf 4G InnoDBメインとするサーバ

ここでは、my-medium.cnfを参考に設定していきたいと思います。

まずはコピー。

# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

日本語メインで使用しますので、デフォルトの言語を変更します。
各セクション(clientとmysqld)で設定を記述します。

# vi /etc/my.cnf

[client]
...
default-character-set=utf8
...
[mysqld]
...
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
...

utf8-general-ci vs utf8-unicode-ci といった問題もありますが、
あくまでデフォルトの設定なので、必要な場所で必要な方を使えばいいと思います。

設定ファイルを確認したら、MariaDBを起動します。
併せて、システム起動時にも自動起動するよう設定します。

# systemctl start mariadb.service
# systemctl enable mariadb.service

初期設定

匿名ユーザや、無名ユーザ、テスト用データベースなど、
インストール直後はいろいろ不必要な設定が残っています。
これらの設定を削除してくれるコマンドがありますので、
これを実行します。

以下の項目の設定を行ってくれます。
便利!

・rootユーザーのパスワード設定
・匿名ユーザーの削除
・rootユーザーのリモートログイン禁止
・テスト用データーベースの削除
・変更を反映

$ /usr/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

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

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

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

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

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

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

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!

設定の確認

上記のコマンドで反映した情報を確認します。
データベースにログインして、データベースのリスト、ユーザのリストを確認してみます。

$ mysql -u root -p
Enter password:

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

MariaDB [(none)]&> SELECT user,host FROM mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.