[小ネタ]Amazon Linux 2023にMySQL Clientをインストールする

RHEL9用のパッケージを使いましょう
2023.03.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。CX事業本部Delivery部のakkyです。

小ネタです。Amazon Linux 2023(以下AL2023)が出たので、MySQLのメンテナンス用インスタンスのOSを更新しようと思ったのですが、当然ながらAmazon Linux 2と同じ手順ではうまくいきませんでした。今回は、AL2023にMySQLをインストールする方法を調べてみました。

TL;DR

(2023/8/17追記。2023/8/25案内を追記。)

次のコマンドでインストールできます。なお、このパッケージに関してAWSからのサポートはありません。

dnf -y localinstall  https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
dnf -y install mysql mysql-community-client

MariaDBを使用してRDS MySQLへ接続できることがAWS公式ドキュメントに記載されています。詳しくは以下の記事をご覧ください。

dnf -y install mariadb105

検証過程

以下の検証は、WSL2上のコンテナ(x86_64)とEC2のt4g.nanoインスタンス(aarch64)で行いました。

デフォルトのリポジトリにはMySQLは入っていません。

# dnf search mysql
Amazon Linux 2023 repository                                                            4.0 MB/s |  11 MB     00:02
Last metadata expiration check: 0:00:02 ago on Thu Mar 23 09:07:52 2023.
============================================ Name & Summary Matched: mysql =============================================
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
bind-dlz-mysql.x86_64 : BIND server mysql and mysqldyn DLZ modules
collectd-mysql.x86_64 : MySQL plugin for collectd
mysql-selinux.noarch : SELinux policy modules for MySQL and MariaDB packages
perl-DBD-MySQL.x86_64 : A MySQL interface for Perl
perl-DateTime-Format-MySQL.noarch : Parse and format MySQL dates and times
php8.1-mysqlnd.x86_64 : A module for PHP 8.1 applications that use MySQL databases
postfix-mysql.x86_64 : Postfix MySQL map support
================================================ Summary Matched: mysql ================================================
mariadb105-devel.x86_64 : Files for development of MariaDB/MySQL applications
mariadb105-server-utils.x86_64 : Non-essential server utilities for MariaDB/MySQL applications
perl-DBD-MariaDB.x86_64 : MariaDB and MySQL driver for the Perl5 Database Interface (DBI)

AL2023はFedoraベース(34,35,36を混ぜたもの)なので、Fedora 36用のリポジトリを入れてみます。 なお、releaseversionがAL2023のバージョンになってしまっているので、置き換えました。

dnf -y localinstall https://dev.mysql.com/get/mysql80-community-release-fc36-1.noarch.rpm
echo "36" > /etc/dnf/vars/fedora_releasever
sed -i "s/\$releasever/\$fedora_releasever/g" /etc/yum.repos.d/mysql-community*
# dnf install -y mysql-community-client
MySQL 8.0 Community Server                                                              2.3 MB/s | 627 kB     00:00
MySQL Connectors Community                                                              195 kB/s |  19 kB     00:00
MySQL Tools Community                                                                   1.6 MB/s | 204 kB     00:00
Error:
 Problem: conflicting requests
  - nothing provides libstdc++.so.6(GLIBCXX_3.4.30)(64bit) needed by mysql-community-client-8.0.30-10.fc36.x86_64
  - nothing provides libstdc++.so.6(GLIBCXX_3.4.30)(64bit) needed by mysql-community-client-8.0.31-10.fc36.x86_64
  - nothing provides libstdc++.so.6(GLIBCXX_3.4.30)(64bit) needed by mysql-community-client-8.0.32-10.fc36.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

stdlibc++のバージョンが合わずにエラー!

しばらく悩んで、RHEL9のパッケージを試したところ、うまく入りました。AL2023はFedoraベースなだけで、Fedora向けパッケージが使えるというわけではないようです。

# dnf -y localinstall  https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
# dnf -y install mysql mysql-community-client
Last metadata expiration check: 0:00:13 ago on Thu Mar 23 10:35:52 2023.
Dependencies resolved.
========================================================================================================================
 Package                                Architecture   Version                          Repository                 Size
========================================================================================================================
Installing:
 mysql-community-client                 x86_64         8.0.32-1.el9                     mysql80-community         3.9 M
Installing dependencies:
 cyrus-sasl-lib                         x86_64         2.1.27-18.amzn2023.0.3           amazonlinux               786 k
 mysql-community-client-plugins         x86_64         8.0.32-1.el9                     mysql80-community         1.4 M
 mysql-community-common                 x86_64         8.0.32-1.el9                     mysql80-community         544 k
 mysql-community-libs                   x86_64         8.0.32-1.el9                     mysql80-community         1.5 M
 systemd-libs                           x86_64         252.4-1161.amzn2023.0.3          amazonlinux               631 k

Transaction Summary
========================================================================================================================
Install  6 Packages

Total size: 8.7 M
Installed size: 100 M
Is this ok [y/N]:

Clientが動作することが確認できました!

ただし、aarch64のマシンにmysql-community-server(mysqld)を試しに入れてみたところ、インストールはできるものの動作しませんでしたのでお気を付けください。x86_64マシンでは動作しました(2023/3/24追記)

$ sudo systemctl start mysqld
Job for mysqld.service failed.
See "systemctl status mysqld.service" and "journalctl -xeu mysqld.service" for details.

MariaDBは公式リポジトリで提供されているので、差し支えなければそちらをご利用ください。

以上

参考ページ