Amazon Linux2にMySQLクライアントを4バージョンいれてみた。Ansible Playbookを添えて
福岡オフィスの梶原です。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