CentOS6 に MySQL 5.6 を RPM でインストール

MySQL 5.6 を試したくなったので CentOS6 に RPM でインストールしようとしたことろ、少し面倒なことになっていました。

RPM をダウンロードしてインストール

MySQL :: Download MySQL Community Server」から RPM をダウンロードします。

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.5_m8-1.linux2.6.x86_64.rpm/from/http://cdn.mysql.com/
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.5_m8-1.linux2.6.x86_64.rpm/from/http://cdn.mysql.com/
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.5_m8-1.linux2.6.x86_64.rpm/from/http://cdn.mysql.com/
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.5_m8-1.linux2.6.x86_64.rpm/from/http://cdn.mysql.com/


インストールしようとすると・・・

rpm -ivh MySQL-*-5.6.5_m8-1.linux2.6.x86_64.rpm


mysql-libs というパッケージと競合してインストール出来ませんでした。

ファイル /usr/share/mysql/charsets/README (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/Index.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/armscii8.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/ascii.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/cp1250.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/cp1251.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/cp1256.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/cp1257.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/cp850.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/cp852.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/cp866.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/dec8.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/geostd8.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/greek.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/hebrew.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/hp8.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/keybcs2.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/koi8r.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/koi8u.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/latin1.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/latin2.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/latin5.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/latin7.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/macce.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/macroman.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/swe7.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/czech/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/danish/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/dutch/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/english/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/estonian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/french/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/german/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/greek/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/hungarian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/italian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/japanese/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/korean/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/norwegian-ny/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/norwegian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/polish/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/portuguese/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/romanian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/russian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/serbian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/slovak/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/spanish/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/swedish/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/ukrainian/errmsg.sys (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。


mysql-libs を削除しようとしても、以下のパッケージに依存されており削除出来ませんでした。cron や postfix が削除されるのはさすがに困ります。

cronie
cronie-anacron
crontabs
postfix
sysstat


mysql-libs の内容を確認してみると・・・

rpm -ql mysql-libs


my.cnf や *.so や、charsets? errmsg? が含まれているようです。

/etc/ld.so.conf.d/mysql-x86_64.conf
/etc/my.cnf
/usr/lib64/mysql
/usr/lib64/mysql/libmysqlclient.so.16
/usr/lib64/mysql/libmysqlclient.so.16.0.0
/usr/lib64/mysql/libmysqlclient_r.so.16
/usr/lib64/mysql/libmysqlclient_r.so.16.0.0
/usr/share/doc/mysql-libs-5.1.61
/usr/share/doc/mysql-libs-5.1.61/COPYING
/usr/share/doc/mysql-libs-5.1.61/README.mysql-license
/usr/share/mysql
/usr/share/mysql/charsets
/usr/share/mysql/charsets/Index.xml
/usr/share/mysql/charsets/README
/usr/share/mysql/charsets/armscii8.xml
/usr/share/mysql/charsets/ascii.xml
  :
/usr/share/mysql/ukrainian
/usr/share/mysql/ukrainian/errmsg.sys


仕方がないので競合の発生した MySQL-server だけ "--force" で強制インストールすることにします*1

rpm -ivh MySQL-{devel,shared,client}-5.6.5_m8-1.linux2.6.x86_64.rpm
rpm -ivh --force MySQL-server-5.6.5_m8-1.linux2.6.x86_64.rpm


あとはデータディレクトリを初期化したり my.cnf を修正したりすれば OK です。


RPM 版を削除

やっぱりいらないので削除するーーーというときに、単に削除しただけだと競合していたファイルがきれいサッパリ消えてしまいます。

rpm -e MySQL-devel MySQL-server MySQL-client MySQL-shared
ls /usr/share/mysql/charsets/
... からっぽ


mysql-lib を再インストールして消えてしまったファイルを復元しておいた方が良いでしょう。

yum reinstall mysql-libs
ls /usr/share/mysql/charsets/
... たくさん

*1: --replacefiles でもいいです