概要
RHEL7でRedHat Software Collections (RHSCL)を使ってMariaDB 10.3をインストールする。今回はMariaDB 5.5と同居させる。
インストール手順
# yum install rh-mariadb103 rh-mariadb103-mariadb-server rh-mariadb103-mariadb-backup
下記サイトを参考に、MariaDB 5.6以降でのopen_files_limit, table_open_cacheの値に対応するようにする。
https://www.denet.ad.jp/technology/2017/10/centos7mysql56.html
# mkdir /etc/systemd/system/rh-mariadb103-mariadb.service.d
# vi /etc/systemd/system/rh-mariadb103-mariadb.service.d/limits.conf
[Service]
LimitNOFILE=10000
# systemctl daemon-reload
そのままMariaDB 10.3を起動すると、Listenしているポート番号やUnixソケットが衝突するため、設定を変える。
[mysqld]
+ port = 3307
- socket=/var/lib/mysql/mysql.sock
+ socket=/var/opt/rh/rh-mariadb103/lib/mysql/mysql.sock
MariaDB 10.3のサービスを起動。
# systemctl start rh-mariadb103-mariadb
# systemctl enable rh-mariadb103-mariadb
動作確認。
ここで、-h 127.0.0.1
オプションなどが無いと、mysql.cnfの設定を見てUnixソケットに接続しに行こうとするため、MariaDB 5.5に接続される(ポート指定は無視される)。
# /opt/rh/rh-mariadb103/root/bin/mysql --version
/opt/rh/rh-mariadb103/root/bin/mysql Ver 15.1 Distrib 10.3.13-MariaDB, for Linux (x86_64) using EditLine wrapper
# /opt/rh/rh-mariadb103/root/bin/mysql -u root -h 127.0.0.1 -P 3307
または
# /opt/rh/rh-mariadb103/root/bin/mysql -u root -S /var/opt/rh/rh-mariadb103/lib/mysql/mysql.sock
備考
複数バージョンのMariaDBを共存させない場合
他にMariaDBがインストールされていない場合は、syspathsをインストールすることで通常のMariaDBのように扱える。他のMariaDBがインストールされている場合はyumの依存関係チェックでエラーとなる。
- rh-mariadb103-mariadb-syspaths
- rh-mariadb103-mariadb-config-syspaths
- rh-mariadb103-mariadb-server-syspaths
設定ファイルなど
設定ファイル
/etc/opt/rh/rh-mariadb103/my.cnf
/etc/opt/rh/rh-mariadb103/my.cnf.d/
データディレクトリ
/var/opt/rh/rh-mariadb103/lib/mysql