MySQL_EC2からRDS(MySQL)に接続する



EC2(Amazon Linux AMI)からAWS RDS(MySQL)への接続を行う手順を記載します。


MySQLサーバー接続

クライアントのインストール

yumからMySQLクライアントを取得します。

$ sudo yum install mysql

接続

下記コマンドを実行してパスワードを入力します。

エンドポイントはAWS RDSの接続情報を確認します。形式は「xxxx.rds.amazonaws.com」です。

$ mysql -h <endpoint> -P 3306 -u <username> -p

接続が成功したら、下記コマンドを実行してデータベース一覧が存在することを確認します。

MySQL [(none)]> show databases;

切断

exit または quit を使用して MySQL サーバへの接続を切断することができます

MySQL [(none)]> quit;

データベースの作成と削除

「CREATE DATABASE」文でデータベースを作成します。

MySQL [(none)]> create database database01;
MySQL [(none)]> show databases;

「DROP DATABASE」文でデータベースを削除します。

MySQL [(none)]> drop database database01;
MySQL [(none)]> show databases;

データベースへの接続

「USE」文でデータベースを作成します。

MySQL [(none)]> use database01;
Database changed
MySQL [database01]> show tables;
Empty set (0.00 sec)

データベースに接続している状態でも、再度USE文を使用すれば他のデータベースへ接続しなおすことができます。

MySQL [(none)]> use database01;
Database changed
MySQL [database01]> use database02;
Database changed
MySQL [database02]>

テーブルの作成

「CREATE TABLE」文でデータベースを作成します。

MySQL [database01]> create table database01.table01 (
    ->     id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
    ->     date date,
    ->     title VARCHAR(50),
    ->     content TEXT,
    ->     created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    ->     updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    -> );
Query OK, 0 rows affected (0.02 sec)

テーブルの確認は「SHOW COLUMNS」文を実行します。

MySQL [database01]> show columns from table01;
+------------+-------------+------+-----+-------------------+-----------------------------+
| Field      | Type        | Null | Key | Default           | Extra                       |
+------------+-------------+------+-----+-------------------+-----------------------------+
| id         | int(11)     | NO   | PRI | NULL              | auto_increment              |
| date       | date        | YES  |     | NULL              |                             |
| title      | varchar(50) | YES  |     | NULL              |                             |
| content    | text        | YES  |     | NULL              |                             |
| created_at | timestamp   | NO   |     | CURRENT_TIMESTAMP |                             |
| updated_at | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+-------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.00 sec)

レコード(データ)を追加する。

レコードの追加は「INSERT」文を実行します。

insert into table01(date, title, content) values('2017-07-03', 'title001', "memo001");
insert into table01(date, title, content) values('2018-02-15', "title002", 'memo002');
insert into table01(date, title, content) values('2018-06-21', "title003", 'memo003');
insert into table01(date, title, content) values('2018-12-15', "title004", 'memo004');
insert into table01(date, title, content) values('2019-01-21', "title005", 'memo005');

select * from table01;
+----+------------+----------+---------+---------------------+---------------------+
| id | date       | title    | content | created_at          | updated_at          |
+----+------------+----------+---------+---------------------+---------------------+
|  1 | 2017-07-03 | title001 | memo001 | 2019-01-21 06:06:03 | 2019-01-21 06:06:03 |
|  2 | 2018-02-15 | title002 | memo002 | 2019-01-21 06:06:07 | 2019-01-21 06:06:07 |
|  3 | 2018-06-21 | title003 | memo003 | 2019-01-21 06:06:12 | 2019-01-21 06:06:12 |
|  4 | 2018-12-15 | title004 | memo004 | 2019-01-21 06:06:16 | 2019-01-21 06:06:16 |
|  5 | 2019-01-21 | title005 | memo005 | 2019-01-21 06:06:21 | 2019-01-21 06:06:21 |
+----+------------+----------+---------+---------------------+---------------------+

レコード(データ)を更新する。

レコードの追加は「UPDATE」文を実行します。

update table01 set title = 'updated003' where id = 3;
update table01 set content = 'updated002' where id = 2;

select * from table01;
+----+------------+------------+------------+---------------------+---------------------+
| id | date       | title      | content    | created_at          | updated_at          |
+----+------------+------------+------------+---------------------+---------------------+
|  1 | 2017-07-03 | title001   | memo001    | 2019-01-21 06:06:03 | 2019-01-21 06:06:03 |
|  2 | 2018-02-15 | title002   | updated002 | 2019-01-21 06:06:07 | 2019-01-21 06:09:00 |
|  3 | 2018-06-21 | updated003 | memo003    | 2019-01-21 06:06:12 | 2019-01-21 06:08:56 |
|  4 | 2018-12-15 | title004   | memo004    | 2019-01-21 06:06:16 | 2019-01-21 06:06:16 |
|  5 | 2019-01-21 | title005   | memo005    | 2019-01-21 06:06:21 | 2019-01-21 06:06:21 |
+----+------------+------------+------------+---------------------+---------------------+

レコード(データ)を検索する。

IDで検索します。

select * from table01 where id = 2;
select * from table01 where id = 1 OR id = 3;

DATE型を比較して日付で検索します。

select * from table01 where date >= '2018-01-01';
select * from table01 where date >= '2018-01-01' AND date <= '2018-12-31';

更新時刻を基準として、最新3件を検索します。

select * from table01 order by updated_at desc limit 3;

次の3件を検索する場合には「OFFSET」を利用します。

select * from table01 order by updated_at desc limit 3 offset 3;

レコード(データ)を削除する。

レコードの削除は「DELETE FROM」文を実行します。

delete from table01 where id = 1;
select * from table01;
+----+------------+------------+------------+---------------------+---------------------+
| id | date       | title      | content    | created_at          | updated_at          |
+----+------------+------------+------------+---------------------+---------------------+
|  2 | 2018-02-15 | title002   | updated002 | 2019-01-21 06:06:07 | 2019-01-21 06:09:00 |
|  3 | 2018-06-21 | updated003 | memo003    | 2019-01-21 06:06:12 | 2019-01-21 06:08:56 |
|  4 | 2018-12-15 | title004   | memo004    | 2019-01-21 06:06:16 | 2019-01-21 06:06:16 |
|  5 | 2019-01-21 | title005   | memo005    | 2019-01-21 06:06:21 | 2019-01-21 06:06:21 |
+----+------------+------------+------------+---------------------+---------------------+

全件削除を行うには、下記命令を実行します。

delete from table01;
select * from table01;

テーブルの削除

テーブルの削除は「DROP TABLE」文を実行します。

存在しない場合には何もしない「IF EXISTS」を付けるとエラーを抑止できます。

drop table if exists table01;
show tables;



スポンサード リンク