CentOS 7 に MariaDB Galera Cluster を入れようとしたときに少し躓いたのでメモしておきます。
まず MariaDB Galera Cluster とはなんぞやですが、手軽にクラスタが作れる MariaDB です…って説明が雑ですが、詳しくはググると良いと思いますwそれのインストールの時に依存関係でちょっと面倒です。
基本的には以下のさくらインターネット研究所さんのページを参考にすればインストール可能です。今回使うのは Minimum な感じでインストールした CentOS 7.0 x86_64 です。
MariaDB Galera Clusterを試す (1) « さくらインターネット研究所
手順通りリポジトリを追加してインストールしようとするのですが…。
# yum install MariaDB-Galera-server MariaDB-client galera (中略) Transaction check error: file /etc/my.cnf from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/Index.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/armscii8.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/ascii.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/cp1250.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/cp1256.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/cp1257.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/cp850.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/cp852.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/cp866.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/dec8.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/geostd8.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/greek.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/hebrew.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/hp8.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/keybcs2.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/koi8r.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/koi8u.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/latin1.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/latin2.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/latin5.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/latin7.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/macce.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/macroman.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/charsets/swe7.xml from install of MariaDB-common-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/czech/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/danish/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/dutch/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/english/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/estonian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/french/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/german/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/greek/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/hungarian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/italian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/japanese/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/korean/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/norwegian-ny/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/norwegian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/polish/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/portuguese/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/romanian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/russian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/serbian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/slovak/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/spanish/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/swedish/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 file /usr/share/mysql/ukrainian/errmsg.sys from install of MariaDB-Galera-server-10.0.14-1.el7.centos.x86_64 conflicts with file from package mariadb-libs-1:5.5.35-3.el7.x86_64 エラーの要約 -------------
mariadb-libs と conflict してると言われます。じゃあそれ消せば良いじゃん…!
# yum remove mariadb-libs 読み込んだプラグイン:fastestmirror 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ mariadb-libs.x86_64 1:5.5.35-3.el7 を 削除 --> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-6.el7.x86_64 --> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-6.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ postfix.x86_64 2:2.10.1-6.el7 を 削除 --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================ 削除中: mariadb-libs x86_64 1:5.5.35-3.el7 @anaconda 4.4 M 依存性関連での削除をします: postfix x86_64 2:2.10.1-6.el7 @anaconda 12 M トランザクションの要約 ================================================================================================================================ 削除 1 パッケージ (+1 個の依存関係のパッケージ) インストール容量: 17 M 上記の処理を行います。よろしいでしょうか? [y/N]
えー postfix を消せだとー!そうなんです。 postfix を消せと言ってきます。場合によっては、それは無理、なんてこともあるでしょう。一旦消して MariaDB Galera Cluster 入れてから postfix を入れ直そうとしても無理です。 mariadb-libs を入れようとして依存関係でエラーが出ます。
そこで調べました。ありました。ネットとグーグル先生最高です。
CentOS • View topic – How do I install postfix with MariaDB 10.1? …Or mailserver…?
つまり、まず yum remove mariadb-lib をして /etc/yum.repo.d/CentOS-Base.repo の [base] と [updates] に exclude=mariadb* を書き足します。そして yum install postfix をすると MariaDB Galera Cluster と共存可能なパッケージと一緒に入ります。 yum install postfix の前に yum update も書いてありますが、とりあえず実行しなくても大丈夫でした。
どうやら mariadb-libs の代わりに必要な物は MariaDB-shared (と MariaDB-common )のようなので、 exclude を書かずに yum install MariaDB-shared MariaDB-common postfix としても良いかもしれませんし、一時的にでも postfix が消えるのが嫌ならば yum remove mariadb-libs の代わりに rpm -e –nodeps mariadb-libs とやってから yum install MariaDB-shared MariaDB-common とやっても良いかもしれません。要は mariadb-libs は MariaDB-shared に置き換えれば良いよってことです。先ほどのページでは MariaDB-compat も入るみたいなこと書いてますが、僕の環境では入りませんでした。
あとは yum install MariaDB-Galera-server MariaDB-client galera を実行します。
# yum install MariaDB-Galera-server MariaDB-client galera (中略) インストール: MariaDB-Galera-server.x86_64 0:10.0.14-1.el7.centos MariaDB-client.x86_64 0:10.0.14-1.el7.centos galera.x86_64 0:25.3.5-1.rhel6 依存性関連をインストールしました: libaio.x86_64 0:0.3.109-12.el7 lsof.x86_64 0:4.87-4.el7 perl.x86_64 4:5.16.3-283.el7 perl-Carp.noarch 0:1.26-244.el7 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7 perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-2.el7 perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PathTools.x86_64 0:3.40-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7 perl-Pod-Escapes.noarch 1:1.04-283.el7 perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-3.el7 perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-Local.noarch 0:1.2300-2.el7 perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-283.el7 perl-macros.x86_64 4:5.16.3-283.el7 perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7 rsync.x86_64 0:3.0.9-15.el7 socat.x86_64 0:1.7.2.2-5.el7 完了しました!
やった!あとは引き続きさくらインターネット研究所さんのブログ通りに進めるだけです!
なお MariaDB Galera Cluster が他のサーバと通信するときに 3306/tcp を使っているかは調べてませんが、とりあえず 4444/tcp と 4567/tcp も使うようなので開けておかないと上手く動きませんw