4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AnsibleでAmazon LinuxにMySQL5.6とMySQL-pythonをインストールする

Last updated at Posted at 2016-11-14

AnsibleでAmazon LinuxにMySQL5.6をインストールし、mysql_userとmysql_dbモジュールを使いたいというのが趣旨です。
カンタンと思いきや、存外ハマったので記録を残しておきます。

ハマりどころその1: MySQL5.6のインストール

2016年11月現在、Amazon Linuxにデフォルトでインストールされているバージョンは5.5です。
これを5.6にアップグレードする必要があります。

MySQL Yum Repositoryをリポジトリとして登録し、ここからyumでインストールする方法をまず試してみました。
実際にやってみると mysql-libsで競合が発生するので、mysql-community-libs-compat を先にインストールする等の工夫が必要になります。

参考:

さて、mysql-community-serverが無事インストールできたので、MySQL-python(ansibleのmysql_userモジュールを使うために必要)をインストールしようとすると、競合が発生します。

$ sudo yum install MySQL-python

==============================================================================================================================================================================================================================================================================
 Package                                                            アーキテクチャー                                           バージョン                                                              リポジトリー                                                      容量
==============================================================================================================================================================================================================================================================================
インストール中:
 MySQL-python26                                                     x86_64                                                     1.2.3-11.14.amzn1                                                       amzn-main                                                         95 k
依存性関連でのインストールをします:
 mysql55-libs                                                       x86_64                                                     5.5.52-1.13.amzn1                                                       amzn-updates                                                     815 k
 python26                                                           x86_64                                                     2.6.9-2.88.amzn1                                                        amzn-main                                                        5.8 M
 python26-libs                                                      x86_64                                                     2.6.9-2.88.amzn1                                                        amzn-main                                                        697 k

トランザクションの要約
==============================================================================================================================================================================================================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 7.3 M
インストール容量: 24 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): MySQL-python26-1.2.3-11.14.amzn1.x86_64.rpm                                                                                                                                                                                                     |  95 kB     00:00
(2/4): mysql55-libs-5.5.52-1.13.amzn1.x86_64.rpm                                                                                                                                                                                                       | 815 kB     00:00
(3/4): python26-2.6.9-2.88.amzn1.x86_64.rpm                                                                                                                                                                                                            | 5.8 MB     00:00
(4/4): python26-libs-2.6.9-2.88.amzn1.x86_64.rpm                                                                                                                                                                                                       | 697 kB     00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                                                                           19 MB/s | 7.3 MB  00:00:00
Running transaction check
Running transaction test


Transaction check error:
  file /usr/lib64/mysql/libmysqlclient.so.18 from install of mysql55-libs-5.5.52-1.13.amzn1.x86_64 conflicts with file from package mysql-community-libs-5.6.34-2.el6.x86_64

どうしたもんかと思っていたところ、http://aws.typepad.com/aws_japan/2015/09/now-available-amazon-linux-ami-2015-09.html を読むと、amazonのリポジトリに5.6が追加されてる模様です。

sudo yum install mysql56-server

すれば OKでした。

ハマりどころその2: MySQL-python

普通にインストールすると sudo yum install MySQL-python と打つと思います。
依存関係はというと..

$ sudo yum install MySQL-python

==============================================================================================================================================================================================================================================================================
 Package                                                            アーキテクチャー                                           バージョン                                                              リポジトリー                                                      容量
==============================================================================================================================================================================================================================================================================
インストール中:
 MySQL-python26                                                     x86_64                                                     1.2.3-11.14.amzn1                                                       amzn-main                                                         95 k
依存性関連でのインストールをします:
 mysql55-libs                                                       x86_64                                                     5.5.52-1.13.amzn1                                                       amzn-updates                                                     815 k
 python26                                                           x86_64                                                     2.6.9-2.88.amzn1                                                        amzn-main                                                        5.8 M
 python26-libs                                                      x86_64                                                     2.6.9-2.88.amzn1                                                        amzn-main                                                        697 k

トランザクションの要約
==============================================================================================================================================================================================================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)

となって、python26 と python26-libs をインストールします。
が、Amazon Linux にデフォルトでインストールされている python は2.7という。。。

自分は検証・再現していませんが、ネット上の記事をサーベイする限りにではトラブルの元になっている模様です。
回避するにはパッケージを明示的に MySQL-Python27 と指定すればOKです。

結論

ansibleのtaskで書くと以下の通りです。
一度通った道であればカンタンなんですがね。。

- name: Install MySQL5.6 and MySQL-python
  yum: name={{ item }}
  with_items:
    - mysql56-server
    - MySQL-python27
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?