mysqlコマンドで、DBサーバ上のMySQLに接続できるようになるまでの手順をメモします。
Amazon Linux のベースは RedHat 系のディストリビューションであると言われています。 特にAmazon Linux 2 RHEL7 / CentOS7 をベースとしていると言われております
なので今回は、RedHat系のディストリビューション(CentOSなど)における、mysqlパッケージのmysql-community-client
をインストールします。
手順
では手順を見ていきます。
AmazonLinux2(RHEL 7 や CentOS7も同様)にはMySQLの替わりにMariaDBがデフォルトのデータベースとして採用されています。
mysqlコマンド実行時に影響するかもしれないので、削除します。
$ yum list installed | grep mariadb $ yum remove mariadb-libs
現時点ではリポジトリがないことが確認できます。
$ yum repolist all | grep mysql
最初に書いたとおり AmazonLinux 2 は RHEL7 系に対応しているため、Red Hat Enterprise Linux 7 / Oracle Linux 7 RPM Package
をダウンロードして MySQL 用のパッケージをインストールします。
具体的なURLはOracle公式の MySQL Yum Repository から取得します。
なお、パッケージのバージョンが違うと以下のようなエラーが出てしまいます。
ERROR You need to update rpm to handle: rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by mysql80-community-release-el9-4.noarch RPM needs to be updated You could try running: rpm -Va --nofiles --nodigest Your transaction was saved, rerun it with: yum load-transaction /tmp/yum_save_tx.2023-12-10.05-40.bjFWFR.yumtx
インストールします。
$ yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm (省略) Installed: mysql80-community-release.noarch 0:el7-11 Complete!
リポジトリ一覧をみてみると利用可能なリポジトリの中にmysql57-community
も入っていますが、mysql80-community
がenabled
となっているため、yum install でMYSQL8.0が自動的にインストールされます。
もしMySQL5.7 をインストールしたい場合は、yum-config-manager
コマンドでMYSQL8.0のリポジトリを無効化し、MySQL5.7のリポジトリを有効化した後に yum install しましょう。
bash-4.2# yum repolist all | grep mysql (省略) mysql57-community/x86_64 MySQL 5.7 Co disabled mysql57-community-source MySQL 5.7 Co disabled mysql80-community/x86_64 MySQL 8.0 Co enabled: 446 mysql80-community-debuginfo/x86_64 MySQL 8.0 Co disabled mysql80-community-source MySQL 8.0 Co disabled
mysql-community-client
をインストールします。
$ yum install -y mysql-community-client
これでmysqlコマンドが実行できるようになりました!
$ mysql --version mysql Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)
Dockerfile での記述
Dockerfile 内でインストール実行する際は、以下のように書くと良さそうです。
FROM amazonlinux:2 (省略 yum update & install など) RUN rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm \ && yum -y install mysql-community-client
mysql-devel について
gem mysql2 を利用する場合は、mysql-devel (mysql-community-devel) をインストールする必要があるみたいです。
mysql2をインストールする際に、mysqlのヘッダファイルが必要となるため、追加でsudo yum install mysql-community-devel -yを実行しておきましょう。これを忘れると次のmysql2をインストール中にエラーが出て途中で停止してしまいます。 gihyo.jp
Debian系のディストリビューションの場合
Debian系のLinuxディストリビューション(Ubuntuなど)の場合は、以下のパッケージをインストールします。
mysql-client
なお、Debian GNU/Linux 10 (buster) からは、こちらは無くなったようなので、default-mysql-client
を使うようにします。libmysqlclient-dev