この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
福岡オフィスの梶原です。Amazon Linux2にMySQLクライアントを入れる機会があったのですが Amazon Linux2標準のリポジトリはMariaDBを参照していたりして、ちょと癖があり
- MariaDB 5.5
- MariaDB 10.2
- MySQL 5.7
- MySQL 8.0
のMySQLクライアントをインストールする際のそれぞれのコマンドと、勢いでAnsibleのプレイブックを作ったので公開します。
※注意 MySQLの標準リポジトリ利用は無保証となります。使用する際は検証等は十分にされてください。
前提条件
2019/05/20 時点の情報です。リポジトリの更新タイミング等でインストールされるバージョンは変わる可能性があります
MariaDB 5.5
コマンドライン
#Extras Libraryをdisableに(有効にしたことがなければ不要です)
$ sudo amazon-linux-extras disable lamp-mariadb10.2-php7.2
# Mysql Client Install
$ sudo yum install -y mariadb
... 省略
Installed:
mariadb.x86_64 1:5.5.62-1.amzn2.0.1
Dependency Installed:
mariadb-libs.x86_64 1:5.5.62-1.amzn2.0.1
Complete!
$ mysql --version
mysql Ver 15.1 Distrib 5.5.62-MariaDB, for Linux (x86_64) using readline 5.
Ansbile Playbook
---
- name: amazon-linux-extras disable lamp-mariadb10.2-php7.2
shell: amazon-linux-extras disable lamp-mariadb10.2-php7.2
- name: install mariadb
yum:
name: mariadb
state: present
MariaDB 10.2
コマンドライン
#Extras Libraryを有効にします。
$ sudo amazon-linux-extras enable lamp-mariadb10.2-php7.2
# Mysql Client Install
$ sudo yum install -y mariadb
... 省略
Installed:
mariadb.x86_64 3:10.2.10-2.amzn2.0.3
Dependency Installed:
mariadb-common.x86_64 3:10.2.10-2.amzn2.0.3 mariadb-config.x86_64 3:10.2.10-2.amzn2.0.3 mariadb-libs.x86_64 3:10.2.10-2.amzn2.0.3
Complete!
$ mysql --version
mysql Ver 15.1 Distrib 10.2.10-MariaDB, for Linux (x86_64) using EditLine wrapper
Ansbile Playbook
---
- name: amazon-linux-extras enable lamp-mariadb10.2-php7.2
shell: amazon-linux-extras enable lamp-mariadb10.2-php7.2
- name: install mariadb
yum:
name: mariadb
state: latest
※ すでにmariadbが入っていることを考慮してstateはlatest
にしています。
MySQL 5.7
コマンドライン
# Mysqlの標準リポジトリを追加します
$ sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
... 省略
Installed:
mysql80-community-release.noarch 0:el7-3
Complete!
# 標準の状態だと8.0がインストールされるので設定を5.7に変更します
$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql57-community
# Mysql Client Install
$ sudo yum install -y mysql-community-client
... 省略
Installed:
mysql-community-client.x86_64 0:5.7.26-1.el7
Dependency Installed:
mysql-community-common.x86_64 0:5.7.26-1.el7 mysql-community-libs.x86_64 0:5.7.26-1.el7
Complete!
$ mysql --version
mysql Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using EditLine wrapper
Ansbile Playbook
---
- name: rpm install MySQL Yum Repository
yum:
name: https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
state: present
- name: enable mysql57-community
shell: |
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
- name: install mysql-community-client
yum:
name: mysql-community-client
state: present
MySQL 8.0
コマンドライン
# Mysqlの標準リポジトリを追加します
$ sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
... 省略
Installed:
mysql80-community-release.noarch 0:el7-3
Complete!
# 標準の状態で8.0の設定ですが一応有効に
$ sudo yum-config-manager --enable mysql80-community
# Mysql Client Install
$ sudo yum install -y mysql-community-client
... 省略
Installed:
mysql-community-client.x86_64 0:8.0.16-2.el7
Complete!
$ mysql --version
mysql Ver 8.0.16 for Linux on x86_64 (MySQL Community Server - GPL)
Ansbile Playbook
---
- name: rpm install MySQL Yum Repository
yum:
name: https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
state: present
- name: enable mysql80-community
shell: |
yum-config-manager --enable mysql80-community
- name: install mysql-community-client
yum:
name: mysql-community-client
state: latest
※ すでにMySQLクライアントが入っていることを考慮してstateはlatestにしています。
まとめ
- MySQLクライアントが欲しいということであれば、MariaDB 5.5を
- できれば、新しいものをという事であれば拡張ライブラリを有効にして、MariaDB 10.2
- いやいや、標準をということであればMySQL 8.0
- いや、そこまで最新じゃなくてMySQL 5.7で
という状況には正直あまりならないかもしれませんが、Ansible Playbookも置いておくので、未来の自分の役に立つといいなと思います。
おまけ
Ansibleでmysqlのバージョンを出してみた
---
- shell: mysql --version
changed_when: no
register: mysql_version
- debug: var=mysql_version.stdout_lines
参考URL
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html