[小ネタ]Amazon Linux 2023にMySQL Clientをインストールする
こんにちは。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は公式リポジトリで提供されているので、差し支えなければそちらをご利用ください。
以上