この記事は公開されてから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は公式リポジトリで提供されているので、差し支えなければそちらをご利用ください。
以上