mariadb

MariaDB 10.2のインストールと初期セットアップ

今回は、ほぼ自分向けでもありますが、MariaDBのインストール手順を書き起こしていきたいと思います。
え?インストールなんて「yum install MariaDB-server」だけで良いんじゃないの?
っていうそこのアナタm9!!
ほぼ自分向けですから!

インストール環境

OS … CentOS 7.4
DB … MariaDB 10.2.x(最新バージョン)

いざ、インストール

yum リポジトリの追加

リポジトリジェネレータを使い、リポジトリのエントリ情報を取得し、
image.png

/etc/yum.repos.d/にMariaDB.repoという名前で保存してください。

$ cat /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.2 CentOS repository list - created 2017-12-15 08:42 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

インストール

・既存のMariaDBがインストールされていれば削除します

$ yum -y remove MariaDB-server MariaDB-client

・MariaDBのインストール

$ yum -y install MariaDB-server MariaDB-client

データディレクトリの作成

インストールが完了したら、データファイルを配置する先を準備します。
(今回の例では、/export/mariadbをデータファイルの配置先とします。)

mkdir /export/mariadb
chown mysql:mysql /export/mariadb

ちなみに、yumでインストールが完了すると、mysqlグループとユーザーが作成されていますので、
データファイルの配置先をデフォルト以外に設定したい場合は上記手順のような感じで
mysqlユーザーが所有者となっているディレクトリを作成してください。
デフォルトの /var/lib/mysql/data 配下で良い場合は何もしなくて結構です。

設定ファイルのコピー

/usr/share/mysql 配下に my-XXXXX.cnf というファイルが幾つか存在します。
デフォルトで用意されたmy.cnfのサンプルです。
インストールするサーバーのスペックや利用するサービス等の規模によって適宜選択し、
/etcの直下にコピーしましょう。

# ls -l /usr/share/mysql/my*.cnf
-rw-r--r-- 1 root root  4920  9月 25 15:39 /usr/share/mysql/my-huge.cnf
-rw-r--r-- 1 root root 20441  9月 25 15:39 /usr/share/mysql/my-innodb-heavy-4G.cnf
-rw-r--r-- 1 root root  4907  9月 25 15:39 /usr/share/mysql/my-large.cnf
-rw-r--r-- 1 root root  4920  9月 25 15:39 /usr/share/mysql/my-medium.cnf
-rw-r--r-- 1 root root  2846  9月 25 15:39 /usr/share/mysql/my-small.cnf
# cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf

my.cnfのコピーが完了したら、ざっくりの設定項目を変更します。

[mysqld]
datadir = /export/mariadb
innodb_data_home_dir = /export/mariadb
innodb_log_group_home_dir = /export/mariadb
innodb_buffer_pool_size = #トータルのメモリの半分~7割程度に
transaction-isolation = READ-COMMITTED # トランザクション分離レベル
innodb_flush_method=O_DIRECT # ファイルへのフラッシュ方法
# REDOログ関係
innodb_log_file_size = # innodb_buffer_pool_size の 25%に
innodb_log_buffer_size = # innodb_log_file_sizeの50%に(※要検証)
innodb_log_files_in_group = 2 # 1グループあたりのログファイルの数(※要検証)
innodb_page_size = 16K # innodbページサイズ(デフォルト16K)
innodb_io_capacity = 2000 # I/O効率化
innodb_flush_neighbors = 0 # I/O効率化
character-set-server = utf8mb4 # キャラクターセット

他の項目は適宜環境に合わせて変更してください。

サービスの起動

# systemctl start mariadb.service

サービスの正常性確認

# systemctl status mariadb.service

自動起動の設定

# systemctl enable mariadb.service

初期設定ツールの実行

# mysql_secure_installation
-Enter current password for root(enter for none):
(初期のrootのパスワードを聞かれるのでそのままEnter)
-Set root password?[Y/n]
(新しいrootパスワードを設定)
-Remove anonymous users?[Y/n]
(anonymousユーザーを削除するか聞かれるのでYes)
-Disallow root login remotely?[Y/n]
(rootユーザーのリモートアクセスを許可するか聞かれるのでNo)
-Remove test database and access to it?[Y/n]
testデータベース消す?って聞かれるのでYes
-Reload privilege tables now?[Y/n]
設定読み込み直す?って聞かれるのでYes

で完了です。

Spiderストレージエンジンのインストール

# mysql -uroot -p < /usr/share/mysql/install_spider.sql

これで一通りの準備が完了します。