CentOS 6.4にMySQL 5.5をrpmインストール

CentOS 6.4にMySQLrpmで入れることにする。MySQLは、5.6系はまだ初物すぎるので5.5系を入れようか。

ダウンロード

まずはOSデフォルトのyumリポジトリから入れようかと、バージョンを確認。

[ozuma@paracent ~]$ yum info mysql.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Available Packages
Name        : mysql
Arch        : x86_64
Version     : 5.1.67
Release     : 1.el6_3
Size        : 886 k
Repo        : updates
Summary     : MySQL client programs and shared libraries
URL         : http://www.mysql.com
License     : GPLv2 with exceptions
Description : MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
            : client/server implementation consisting of a server daemon (mysqld)
            : and many different client programs and libraries. The base package
            : contains the standard MySQL client programs and generic MySQL files.

なんと「Version : 5.1.67」……これは古すぎるので、やめよう。MySQLの公式ページにてrpmを配っているので、そちらを入れることにする。

TOPページから「Downloads (GA)」→「MySQL Community Server」と辿る。最新版のMySQL 5.6をオススメされるので、下の「Looking for previous GA versions?」をクリックする。

Versionに5.5.30、PlatformにLinux Genericを選択する。


ダウンロードするrpmパッケージは、以下の3つ。ここで、Linux - Generic 2.6 (x86, 64-bit), RPM Package Shared componentsではなく、shared-compatという方をダウンロードする。理由は後述。


ちなみにダウンロードしようとするとOrace Web Accountでログインするよう求められるのだけど、下の方のリンク「No thanks, just start my download.」をクリックすればそのままダウンロードできる。これは小ネタ。

CentOSのデフォルトmysql-libsとの競合

ダウンロードしてきたrpmを、yumコマンドでインストールすれば良い。……のだが、この際、CentOSではちょっと面倒なことになっている。以下のようにCentOS 6.4では、デフォルトでmysql-libsがインストールされている。

[ozuma@paracent ~]$ yum list installed|grep mysql
mysql-libs.x86_64       5.1.66-2.el6_3  @anaconda-CentOS-201303020151.x86_64/6.4

この状態でMySQL Serverを入れようとすると、以下のようにエラーになりインストールできない。

[root@paracent download]# yum localinstall MySQL-server-5.5.30-1.linux2.6.x86_64.rpm
.......(省略).......

Transaction Check Error:
  file /usr/share/mysql/charsets/README from install of MySQL-server-5.5.30-1.linux2.6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64

.......(省略).......

  file /usr/share/mysql/charsets/Index.xml from install of MySQL-server-5.5.30-1.linux2.6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64
  file /usr/share/mysql/charsets/armscii8.xml from install of MySQL-server-5.5.30-1.linux2.6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64
  file /usr/share/mysql/spanish/errmsg.sys from install of MySQL-server-5.5.30-1.linux2.6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64
  file /usr/share/mysql/swedish/errmsg.sys from install of MySQL-server-5.5.30-1.linux2.6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64
  file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.30-1.linux2.6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64

Error Summary
------------- 

/usr/share/mysql/charsets/ の中のファイルが、デフォルトで入っているmysql-libsとカブっているため入らないようだ。
ということで、OS標準のmysql-libsをyum eraseで消そうと思うと……。

[root@paracent ozuma]# yum erase mysql-libs.x86_64
.......(省略).......
Dependencies Resolved

============================================================================================================
 Package             Arch        Version                Repository                                     Size
============================================================================================================
Removing:
 mysql-libs          x86_64      5.1.66-2.el6_3         @anaconda-CentOS-201303020151.x86_64/6.4      4.0 M
Removing for dependencies:
 cronie              x86_64      1.4.4-7.el6            @anaconda-CentOS-201303020151.x86_64/6.4      166 k
 cronie-anacron      x86_64      1.4.4-7.el6            @anaconda-CentOS-201303020151.x86_64/6.4       43 k
 crontabs            noarch      1.10-33.el6            @anaconda-CentOS-201303020151.x86_64/6.4      2.4 k
 postfix             x86_64      2:2.6.6-2.2.el6_1      @anaconda-CentOS-201303020151.x86_64/6.4      9.7 M

Transaction Summary
============================================================================================================
Remove        5 Package(s)

Installed size: 14 M
Is this ok [y/N]:

なんと、cronie(cron)が依存しているだと……! デフォルトのmysql-libsを消したら、crontabsまで消えてしまう。そりゃ消すわけにいかんだろ……。

そこで、この状態を解消してくれるのがMySQL-shared-compat。これを入れればデフォルトのmysql-libsをアップデートしてくれるので、その上に公式ページのMySQL Serverを問題無く入れることができる。

# yum localinstall MySQL-shared-compat-5.5.30-1.linux2.6.x86_64.rpm

とすると、以下の感じにOSデフォルトのmysql-libsを置き換えてくれる。

Loaded plugins: fastestmirror
Setting up Local Package Process
Examining MySQL-shared-compat-5.5.30-1.linux2.6.x86_64.rpm: MySQL-shared-compat-5.5.30-1.linux2.6.x86_64
Marking MySQL-shared-compat-5.5.30-1.linux2.6.x86_64.rpm to be installed
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package MySQL-shared-compat.x86_64 0:5.5.30-1.linux2.6 will be obsoleting
---> Package mysql-libs.x86_64 0:5.1.66-2.el6_3 will be obsoleted
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================
 Package               Arch     Version               Repository                                       Size
============================================================================================================
Installing:
 MySQL-shared-compat   x86_64   5.5.30-1.linux2.6     /MySQL-shared-compat-5.5.30-1.linux2.6.x86_64    11 M
     replacing  mysql-libs.x86_64 5.1.66-2.el6_3

Transaction Summary
============================================================================================================
Install       1 Package(s)

Total size: 11 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : MySQL-shared-compat-5.5.30-1.linux2.6.x86_64                                             1/2
  Erasing    : mysql-libs-5.1.66-2.el6_3.x86_64                                                         2/2
  Verifying  : MySQL-shared-compat-5.5.30-1.linux2.6.x86_64                                             1/2
  Verifying  : mysql-libs-5.1.66-2.el6_3.x86_64                                                         2/2

Installed:
  MySQL-shared-compat.x86_64 0:5.5.30-1.linux2.6

Replaced:
  mysql-libs.x86_64 0:5.1.66-2.el6_3

Complete!

こうして、mysql-libsが公式ページのMySQL-shared-compatで置き換わった状態にすれば、後は普通にServer, Clientをインストールすれば良い。

# yum localinstall MySQL-server-5.5.30-1.linux2.6.x86_64.rpm
# yum localinstall MySQL-client-5.5.30-1.linux2.6.x86_64.rpm  

これでインストール完了。