【AWS EC2】Amazon Linux2にMySQLのclientだけをインストールしてRDSに接続する方法


概要

  • AWSでDB(MySQL)はRDSを使うのでEC2にMySQLは入れたくない
  • EC2からmysqlコマンドでRDS上のMySQLに接続したい
  • というわけで、EC2にMySQLのクライアントだけをインストールします

環境

  • AWS EC2
    • OS: Amazon Linux 2
    • AMI ID: amzn2-ami-hvm-2.0.20200304.0-x86_64-gp2
  • RDS
    • engine: MySQL Community
    • version: 8.0.17

構築手順

1. すでにインストールされているmariadbを取り除く

  • Amazon Linux2にはMariaDBがデフォルトでインストールされている
  • 干渉したら困るので念のため削除しておく
$ yum list installed | grep mariadb
mariadb-libs.x86_64                   1:5.5.64-1.amzn2               installed
$ sudo yum remove mariadb-libs
Removed:
  mariadb-libs.x86_64 1:5.5.64-1.amzn2
Dependency Removed:
  postfix.x86_64 2:2.10.1-6.amzn2.0.3
Complete!

2. mysql8.0のリポジトリを追加する

  • yum infoでmysql8.0がインストールできるか確認する
  • インストールできないのでmysql8.0のリポジトリを追加する
$ yum info mysql
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
31 packages excluded due to repository priority protections
Error: No matching Packages to list

$ sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
Installed:
  mysql80-community-release.noarch 0:el7-3

3. mysql8.0のリポジトリを有効化する

  • mysql80-community-release-el7-3.noarchの中にmysql5.7も入っている
  • 今回はmysql8.0をインストールしたい
    • mysql5.7のリポジトリを無効化し、mysql8.0のリポジトリを有効化する
$ sudo yum-config-manager --disable mysql57-community
$ sudo yum-config-manager --enable mysql80-community

4. mysql-community-clientをインストールする

$ sudo yum install -y mysql-community-client
Installed:
  mysql-community-client.x86_64 0:8.0.19-1.el7
Dependency Installed:
  mysql-community-common.x86_64 0:8.0.19-1.el7                               mysql-community-libs.x86_64 0:8.0.19-1.el7
  ncurses-compat-libs.x86_64 0:6.0-8.20170212.amzn2.1.3
Complete!

$ mysql --version
mysql  Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)

5. RDSに接続する

  • EC2からRDSへの3306ポートの通信は許可してあるものとする
$ mysql -h hoge.rds.amazonaws.com -P 3306 -u root -p
Enter password:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.03 sec)

参考