CentOS 7 に MariaDB Galera Cluster を入れる

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


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です