きさま!見ているなッ!!

CentOSにMariaDBをインストールする

今回は、データベース市場で徐々にシェア率を伸ばしてきている「MariaDB」のインストール手順をご紹介します。

まずは、MariaDBについて、簡単にまとめてみます。

  • オープンソースなので無料で使える
  • MySQLの派生として開発され、機能も充実している
  • Googleやレンタルサーバー、最近のLinuxディストリビューションで採用されており、未来が明るい
  • MariaDB 10.3からPL/SQLに対応し始めたため、Oracle使うのやめたい人におすすめ

それでは、CentOSにインストールして使ってみましょう。

環境

今回構築する環境情報です。

名称バージョン情報説明
OSCentOS 7.6VirtualBoxの仮想マシン
データベースMariaDB 10.4今回インストールするデータベース

CentOSの環境がない方は、こちらの記事をどうぞ。

インストール準備

MariaDB 10.4 をインストールする前に、不要なパッケージの削除やリポジトリファイルの作成を行います。

インストール済みパッケージの確認

# yum list installed | grep -i mariadb
mariadb-libs.x86_64                     1:5.5.60-1.el7_5               @anaconda
# 

CentOS 7 系だとデフォルトでインストールされているMariaDBのパッケージがあるので、確認します。

古いバージョンのパッケージを削除

# yum remove mariadb-libs
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.60-1.el7_5 を 削除
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ postfix.x86_64 2:2.10.1-7.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================================================
 Package                            アーキテクチャー             バージョン                               リポジトリー                     容量
================================================================================================================================================
削除中:
 mariadb-libs                       x86_64                       1:5.5.60-1.el7_5                         @anaconda                       4.4 M
依存性関連での削除をします:
 postfix                            x86_64                       2:2.10.1-7.el7                           @anaconda                        12 M

トランザクションの要約
================================================================================================================================================
削除  1 パッケージ (+1 個の依存関係のパッケージ)

インストール容量: 17 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : 2:postfix-2.10.1-7.el7.x86_64                                                                                   1/2 
  削除中                  : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                                                                            2/2 
  検証中                  : 2:postfix-2.10.1-7.el7.x86_64                                                                                   1/2 
  検証中                  : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                                                                            2/2 

削除しました:
  mariadb-libs.x86_64 1:5.5.60-1.el7_5                                                                                                          

依存性の削除をしました:
  postfix.x86_64 2:2.10.1-7.el7                                                                                                                 

完了しました!
# 

MariaDB 5.5 のmariadb-libsパッケージがインストールされていたので、削除しておきます。

リポジトリファイル作成

yumコマンドでMariaDB 10.4 をインストールするために、リポジトリファイルを作成します。
まずは、MariaDB公式ダウンロードサイトにアクセスします。

MariaDB公式ダウンロードサイト

MariaDBインストール1
MariaDBインストール2
  1. Choose a Distro:CentOS
  2. Choose a Release:CentOS 7 (x86_64)
  3. Choose a Version:10.4 [Stable]

上記のように選択し、リポジトリファイルの内容を表示させます。

# MariaDB 10.4 CentOS repository list - created 2019-06-24 14:02 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1

リポジトリファイルの内容です。「enabled=1」を追記して有効にします。

# ll /etc/yum.repos.d/
合計 40
-rw-r--r--. 1 root root 1664 11月 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 11月 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 11月 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630 11月 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 11月 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 11月 23  2018 CentOS-Vault.repo
-rw-r--r--. 1 root root  314 11月 23  2018 CentOS-fasttrack.repo
-rw-r--r--  1 root root 1050 10月  3  2017 epel-testing.repo
-rw-r--r--  1 root root  951 10月  3  2017 epel.repo
# 

既存のリポジトリファイルを確認します。ここに「MariaDB.repo」を作成します。

# vi /etc/yum.repos.d/MariaDB.repo

~~~先ほどのリポジトリファイルの内容を記載します~~~

# ll /etc/yum.repos.d/
合計 44
-rw-r--r--. 1 root root 1664 11月 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 11月 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 11月 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630 11月 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 11月 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 11月 23  2018 CentOS-Vault.repo
-rw-r--r--. 1 root root  314 11月 23  2018 CentOS-fasttrack.repo
-rw-r--r--  1 root root  271  6月 24 23:06 MariaDB.repo
-rw-r--r--  1 root root 1050 10月  3  2017 epel-testing.repo
-rw-r--r--  1 root root  951 10月  3  2017 epel.repo
# 

viコマンドで「MariaDB.repo」を作成します。無事にリポジトリファイルが作成できましたね。

MariaDBをインストールする

MariaDB 10.4 のパッケージを確認し、インストールしていきます。

パッケージの確認

# yum list | grep -i mariadb
MariaDB-backup.x86_64                  10.4.6-1.el7.centos             mariadb  
MariaDB-backup-debuginfo.x86_64        10.4.6-1.el7.centos             mariadb  
MariaDB-cassandra-engine.x86_64        10.4.6-1.el7.centos             mariadb  
MariaDB-cassandra-engine-debuginfo.x86_64
                                       10.4.6-1.el7.centos             mariadb  
MariaDB-client.x86_64                  10.4.6-1.el7.centos             mariadb  
MariaDB-client-debuginfo.x86_64        10.4.6-1.el7.centos             mariadb  
MariaDB-common.x86_64                  10.4.6-1.el7.centos             mariadb  
MariaDB-common-debuginfo.x86_64        10.4.6-1.el7.centos             mariadb  
MariaDB-compat.x86_64                  10.4.6-1.el7.centos             mariadb  
MariaDB-connect-engine.x86_64          10.4.6-1.el7.centos             mariadb  
MariaDB-connect-engine-debuginfo.x86_64
                                       10.4.6-1.el7.centos             mariadb  
MariaDB-cracklib-password-check.x86_64 10.4.6-1.el7.centos             mariadb  
MariaDB-cracklib-password-check-debuginfo.x86_64
                                       10.4.6-1.el7.centos             mariadb  
MariaDB-devel.x86_64                   10.4.6-1.el7.centos             mariadb  
MariaDB-devel-debuginfo.x86_64         10.4.6-1.el7.centos             mariadb  
MariaDB-gssapi-server.x86_64           10.4.6-1.el7.centos             mariadb  
MariaDB-gssapi-server-debuginfo.x86_64 10.4.6-1.el7.centos             mariadb  
MariaDB-oqgraph-engine.x86_64          10.4.6-1.el7.centos             mariadb  
MariaDB-oqgraph-engine-debuginfo.x86_64
                                       10.4.6-1.el7.centos             mariadb  
MariaDB-rocksdb-engine.x86_64          10.4.6-1.el7.centos             mariadb  
MariaDB-rocksdb-engine-debuginfo.x86_64
                                       10.4.6-1.el7.centos             mariadb  
MariaDB-server.x86_64                  10.4.6-1.el7.centos             mariadb  
MariaDB-server-debuginfo.x86_64        10.4.6-1.el7.centos             mariadb  
MariaDB-shared.x86_64                  10.4.6-1.el7.centos             mariadb  
MariaDB-shared-debuginfo.x86_64        10.4.6-1.el7.centos             mariadb  
MariaDB-test.x86_64                    10.4.6-1.el7.centos             mariadb  
MariaDB-test-debuginfo.x86_64          10.4.6-1.el7.centos             mariadb  
MariaDB-tokudb-engine.x86_64           10.4.6-1.el7.centos             mariadb  
MariaDB-tokudb-engine-debuginfo.x86_64 10.4.6-1.el7.centos             mariadb  
galera.x86_64                          25.3.24-1.rhel7.el7.centos      mariadb  
galera-4.x86_64                        26.4.2-1.rhel7.el7.centos       mariadb  
mariadb.x86_64                         1:5.5.60-1.el7_5                base     
mariadb-bench.x86_64                   1:5.5.60-1.el7_5                base     
mariadb-devel.i686                     1:5.5.60-1.el7_5                base     
mariadb-devel.x86_64                   1:5.5.60-1.el7_5                base     
mariadb-embedded.i686                  1:5.5.60-1.el7_5                base     
mariadb-embedded.x86_64                1:5.5.60-1.el7_5                base     
mariadb-embedded-devel.i686            1:5.5.60-1.el7_5                base     
mariadb-embedded-devel.x86_64          1:5.5.60-1.el7_5                base     
mariadb-libs.i686                      1:5.5.60-1.el7_5                base     
mariadb-libs.x86_64                    1:5.5.60-1.el7_5                base     
mariadb-server.x86_64                  1:5.5.60-1.el7_5                base     
mariadb-test.x86_64                    1:5.5.60-1.el7_5                base     
# 

MariaDB 10.4 のリポジトリファイルを作成したので、yumコマンドで 10.4 系のパッケージを確認することができるようになりました。

インストール

# yum install MariaDB-server MariaDB-client MariaDB-devel
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * epel: ftp.jaist.ac.jp
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ MariaDB-client.x86_64 0:10.4.6-1.el7.centos を インストール
--> 依存性の処理をしています: MariaDB-common のパッケージ: MariaDB-client-10.4.6-1.el7.centos.x86_64
---> パッケージ MariaDB-devel.x86_64 0:10.4.6-1.el7.centos を インストール
---> パッケージ MariaDB-server.x86_64 0:10.4.6-1.el7.centos を インストール
--> 依存性の処理をしています: galera-4 のパッケージ: MariaDB-server-10.4.6-1.el7.centos.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ MariaDB-common.x86_64 0:10.4.6-1.el7.centos を インストール
--> 依存性の処理をしています: MariaDB-compat のパッケージ: MariaDB-common-10.4.6-1.el7.centos.x86_64
---> パッケージ galera-4.x86_64 0:26.4.2-1.rhel7.el7.centos を インストール
--> トランザクションの確認を実行しています。
---> パッケージ MariaDB-compat.x86_64 0:10.4.6-1.el7.centos を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================================================
 Package                            アーキテクチャー           バージョン                                     リポジトリー                 容量
================================================================================================================================================
インストール中:
 MariaDB-client                     x86_64                     10.4.6-1.el7.centos                            mariadb                      12 M
 MariaDB-devel                      x86_64                     10.4.6-1.el7.centos                            mariadb                     7.5 M
 MariaDB-server                     x86_64                     10.4.6-1.el7.centos                            mariadb                      25 M
依存性関連でのインストールをします:
 MariaDB-common                     x86_64                     10.4.6-1.el7.centos                            mariadb                      81 k
 MariaDB-compat                     x86_64                     10.4.6-1.el7.centos                            mariadb                     2.8 M
 galera-4                           x86_64                     26.4.2-1.rhel7.el7.centos                      mariadb                     9.4 M

トランザクションの要約
================================================================================================================================================
インストール  3 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 57 M
インストール容量: 258 M
Is this ok [y/d/N]: y
Downloading packages:
(1/6): MariaDB-common-10.4.6-1.el7.centos.x86_64.rpm                                                                     |  81 kB  00:00:06     
(2/6): MariaDB-compat-10.4.6-1.el7.centos.x86_64.rpm                                                                     | 2.8 MB  00:00:02     
(3/6): MariaDB-devel-10.4.6-1.el7.centos.x86_64.rpm                                                                      | 7.5 MB  00:00:02     
(4/6): MariaDB-client-10.4.6-1.el7.centos.x86_64.rpm                                                                     |  12 MB  00:00:12     
(5/6): galera-4-26.4.2-1.rhel7.el7.centos.x86_64.rpm                                                                     | 9.4 MB  00:00:09     
(6/6): MariaDB-server-10.4.6-1.el7.centos.x86_64.rpm                                                                     |  25 MB  00:00:15     
------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                            2.1 MB/s |  57 MB  00:00:27     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : MariaDB-compat-10.4.6-1.el7.centos.x86_64                                                                       1/6 
  インストール中          : MariaDB-common-10.4.6-1.el7.centos.x86_64                                                                       2/6 
  インストール中          : MariaDB-client-10.4.6-1.el7.centos.x86_64                                                                       3/6 
  インストール中          : galera-4-26.4.2-1.rhel7.el7.centos.x86_64                                                                       4/6 
  インストール中          : MariaDB-server-10.4.6-1.el7.centos.x86_64                                                                       5/6 
  インストール中          : MariaDB-devel-10.4.6-1.el7.centos.x86_64                                                                        6/6 
  検証中                  : galera-4-26.4.2-1.rhel7.el7.centos.x86_64                                                                       1/6 
  検証中                  : MariaDB-server-10.4.6-1.el7.centos.x86_64                                                                       2/6 
  検証中                  : MariaDB-devel-10.4.6-1.el7.centos.x86_64                                                                        3/6 
  検証中                  : MariaDB-client-10.4.6-1.el7.centos.x86_64                                                                       4/6 
  検証中                  : MariaDB-common-10.4.6-1.el7.centos.x86_64                                                                       5/6 
  検証中                  : MariaDB-compat-10.4.6-1.el7.centos.x86_64                                                                       6/6 

インストール:
  MariaDB-client.x86_64 0:10.4.6-1.el7.centos     MariaDB-devel.x86_64 0:10.4.6-1.el7.centos     MariaDB-server.x86_64 0:10.4.6-1.el7.centos    

依存性関連をインストールしました:
  MariaDB-common.x86_64 0:10.4.6-1.el7.centos    MariaDB-compat.x86_64 0:10.4.6-1.el7.centos    galera-4.x86_64 0:26.4.2-1.rhel7.el7.centos   

完了しました!
# 

yumコマンドで以下のパッケージをインストールします。

  • MariaDB-server
  • MariaDB-client
  • MariaDB-devel
# yum list installed | grep -i mariadb
MariaDB-client.x86_64                   10.4.6-1.el7.centos            @mariadb 
MariaDB-common.x86_64                   10.4.6-1.el7.centos            @mariadb 
MariaDB-compat.x86_64                   10.4.6-1.el7.centos            @mariadb 
MariaDB-devel.x86_64                    10.4.6-1.el7.centos            @mariadb 
MariaDB-server.x86_64                   10.4.6-1.el7.centos            @mariadb 
galera-4.x86_64                         26.4.2-1.rhel7.el7.centos      @mariadb 
# 

インストールされたことを確認します。

初期設定

最低限のmy.cnf設定やセキュリティ設定などを行います。

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

# mkdir /data
# chmod 750 /data
# chown mysql:mysql /data

デフォルトだと「/var/lib/mysql」配下にデータファイルが作成されます。
今回は、「/data」ディレクトリに変更します。

my.cnf(オプションファイル)

# ll /etc/my.cnf
-rw-r--r-- 1 root root 202  6月 18 07:00 /etc/my.cnf
# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
# 

「/etc/my.cnf.d」ディレクトリ配下のファイルを参照するように設定してあります。

# ll /etc/my.cnf.d/
合計 12
-rw-r--r-- 1 root root  763  6月 18 07:00 enable_encryption.preset
-rw-r--r-- 1 root root  232  6月 18 07:00 mysql-clients.cnf
-rw-r--r-- 1 root root 1080  6月 18 07:00 server.cnf
# 

「server.cnf」に設定を追記します。

# chown mysql:mysql /etc/my.cnf
# chown -R mysql:mysql /etc/my.cnf.d/

所有権を「mysql」に変更しておきましょう。

# vi /etc/my.cnf.d/server.cnf

~~~下記を追記します~~~

[mysqld]
user=mysql
datadir = /data/mysql
character-set-server = utf8mb4
socket=/data/mysql/mysql.sock

[client]
default-character-set = utf8mb4
socket=/data/mysql/mysql.sock

キャラクターセットの設定とファイルの場所の設定をしています。
他にも設定するものがありましたら、追記してくださいね。

mysql_install_db(初期化)

# mysql_install_db --defaults-file=/etc/my.cnf --datadir=/data/mysql --user=mysql

「mysql_install_db」を実行し、初期化します。

# ll /data/mysql
合計 110628
-rw-rw---- 1 mysql mysql    24576  6月 25 22:00 aria_log.00000001
-rw-rw---- 1 mysql mysql       52  6月 25 22:00 aria_log_control
-rw-rw---- 1 mysql mysql      972  6月 25 22:00 ib_buffer_pool
-rw-rw---- 1 mysql mysql 50331648  6月 25 22:00 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648  6月 25 22:00 ib_logfile1
-rw-rw---- 1 mysql mysql 12582912  6月 25 22:00 ibdata1
drwx------ 2 mysql mysql     4096  6月 25 22:00 mysql
drwx------ 2 mysql mysql       20  6月 25 22:00 performance_schema
drwx------ 2 mysql mysql       20  6月 25 22:00 test
# 

変更したデータディレクトリ「/data/mysql」にファイルが作成されていますね。

MariaDB起動

# systemctl status mariadb.service
● mariadb.service - MariaDB 10.4.6 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: inactive (dead)
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
# 

MariaDBの現在のステータスを確認します。「Active: inactive (dead)」まだ起動していません。

# systemctl start mariadb.service

起動させます。

# systemctl status mariadb.service
● mariadb.service - MariaDB 10.4.6 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since 火 2019-06-25 22:04:07 JST; 7s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 6259 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 6200 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 6196 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 6226 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30
   CGroup: /system.slice/mariadb.service
           └─6226 /usr/sbin/mysqld

 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] InnoDB: 10.4.6 started; log sequence number 139827; t...n id 21
 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] InnoDB: Loading buffer pool(s) from /data/mysql/ib_buffer_pool
 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] Plugin 'FEEDBACK' is disabled.
 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] InnoDB: Buffer pool(s) load completed at 190625 22:04:07
 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] Server socket created on IP: '::'.
 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] Reading of all Master_info entries succeeded
 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] Added new Master_info '' to hash table
 6月 25 22:04:07 centos mysqld[6226]: 2019-06-25 22:04:07 0 [Note] /usr/sbin/mysqld: ready for connections.
 6月 25 22:04:07 centos mysqld[6226]: Version: '10.4.6-MariaDB'  socket: '/data/mysql/mysql.sock'  port: 3306  MariaDB Server
 6月 25 22:04:07 centos systemd[1]: Started MariaDB 10.4.6 database server.
Hint: Some lines were ellipsized, use -l to show in full.
# 

「Active: active (running)」無事に起動しましたね。

mysql_secure_installation(セキュリティ設定)

# 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
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Enter current password for root (enter for none): 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Enter current password for root (enter for none): 
Aborting!

Cleaning up...
# 

「mysql_secure_installation」を実行し、セキュリティの設定を行います。
おや?何かエラーが発生しましたね。いったん「Ctrl + C」で終了させましょう。

「/var/lib/mysql/mysql.sock」ソケット経由でMySQLサーバーに接続できないと言われています。
そうです。先ほど「server.cnf」に「socket=/data/mysql/mysql.sock」を追記しましたね。

# ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
# ll /var/lib/mysql
合計 110628
-rw-rw---- 1 mysql mysql    24576  6月 25 21:55 aria_log.00000001
-rw-rw---- 1 mysql mysql       52  6月 25 21:55 aria_log_control
-rw-rw---- 1 mysql mysql      972  6月 25 21:55 ib_buffer_pool
-rw-rw---- 1 mysql mysql 50331648  6月 25 21:55 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648  6月 25 21:55 ib_logfile1
-rw-rw---- 1 mysql mysql 12582912  6月 25 21:55 ibdata1
drwx------ 2 mysql mysql     4096  6月 25 21:55 mysql
lrwxrwxrwx 1 root  root        22  6月 25 22:13 mysql.sock -> /data/mysql/mysql.sock
drwx------ 2 mysql mysql       20  6月 25 21:55 performance_schema
drwx------ 2 mysql mysql       20  6月 25 21:55 test
# 

「mysql_secure_installation」 は、デフォルトの 「/var/lib/mysql/mysql.sock」を参照するようです。今回は、シンボリックリンクを作成し、回避します。

# 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
haven't set the root password yet, you should just press enter here.

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

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

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the 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_secure_installation」を実行し、以下の設定を行います。基本的に全て「y」で問題ないと思います。

  • rootアカウントのパスワード設定
  • 匿名ユーザーアカウントの削除
  • ローカルホスト以外からrootアカウントでのログイン禁止
  • テスト用データベース削除

サービスの自動起動設定

# systemctl is-enabled mariadb.service
disabled
# 

CentOSを再起動したときなどに、MariaDBが自動で起動するように設定しておきましょう。現在は、無効になっています。

# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
# systemctl is-enabled mariadb.service
enabled
# 

自動起動が有効になりましたね。

データベース構築

初期設定が済んだので、軽くデータベースを作成してみましょう。

データベース作成

# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 18
Server version: 10.4.6-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)]>

「mysql」コマンドでログインします。パスワードは、 「mysql_secure_installation」で設定したパスワードです。

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

MariaDB [(none)]> 

デフォルトで作成されているデータベースを確認します。

MariaDB [(none)]> CREATE DATABASE sampledb;
Query OK, 1 row affected (0.000 sec)

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

MariaDB [(none)]>

「sampledb」データベースを作成してみます。

テーブル作成

MariaDB [(none)]> use sampledb;
Database changed

MariaDB [sampledb]> show tables;
Empty set (0.000 sec)

MariaDB [sampledb]> 

「sampledb」データベースのテーブルを確認しています。まだ何もありませんね。

MariaDB [sampledb]> CREATE TABLE `t_sample` (
    -> `sample_id` INT(11) NOT NULL AUTO_INCREMENT,
    -> `sample_name` VARCHAR(50) NULL DEFAULT NULL,
    -> `reg_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    -> PRIMARY KEY (`sample_id`)
    -> );
Query OK, 0 rows affected (0.015 sec)

MariaDB [sampledb]> show tables;
+--------------------+
| Tables_in_sampledb |
+--------------------+
| t_sample           |
+--------------------+
1 row in set (0.000 sec)

MariaDB [sampledb]>

「t_sample」テーブルを作成してみましょう。無事に作成されましたね。

サーバーシステム変数の確認

MariaDB [sampledb]> show variables like '%char%';
+--------------------------+----------------------------+
| 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.001 sec)

MariaDB [sampledb]> 

「server.cnf」で設定したキャラクターセットを確認しておきます。設定が反映されていますね。

データファイル確認

# cd /data/mysql
# ll
合計 122920
-rw-rw---- 1 mysql mysql    24576  6月 25 22:25 aria_log.00000001
-rw-rw---- 1 mysql mysql       52  6月 25 22:00 aria_log_control
-rw-rw---- 1 mysql mysql        5  6月 25 22:04 centos.pid
-rw-rw---- 1 mysql mysql      972  6月 25 22:00 ib_buffer_pool
-rw-rw---- 1 mysql mysql 50331648  6月 25 22:31 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648  6月 25 22:00 ib_logfile1
-rw-rw---- 1 mysql mysql 12582912  6月 25 22:31 ibdata1
-rw-rw---- 1 mysql mysql 12582912  6月 25 22:04 ibtmp1
-rw-rw---- 1 mysql mysql        0  6月 25 22:04 multi-master.info
drwx------ 2 mysql mysql     4096  6月 25 22:00 mysql
srwxrwxrwx 1 mysql mysql        0  6月 25 22:04 mysql.sock
drwx------ 2 mysql mysql       20  6月 25 22:00 performance_schema
drwx------ 2 mysql mysql       60  6月 25 22:31 sampledb
# 
# ll ./sampledb
合計 104
-rw-rw---- 1 mysql mysql    67  6月 25 22:28 db.opt
-rw-rw---- 1 mysql mysql  1190  6月 25 22:31 t_sample.frm
-rw-rw---- 1 mysql mysql 98304  6月 25 22:31 t_sample.ibd
# 

最後に、データディレクトリ「/data/mysql」に「sampledb」のデータファイルが作成されていることを確認しておきます。

まとめ

意外と簡単にMariaDB 10.4 のインストールができたのではないでしょうか。
サーバーシステム変数は、環境に応じて検討してみてください。

MariaDBは、徐々にシェア率を伸ばしてきているので、この機会にいろいろと試しておいて損はないと思います。

MariaDBをインストールする
最新情報をチェックしよう!