ASi

Amazon Linux / MySQL install 〜 ssh 経由の操作まで

インストールと起動

# Amazon Linux に login
ssh -i private_key.pem ec2-user@ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com


# install
sudo yum install mysql56-server


# boot
sudo service mysqld start

MySQL Workbench

# MySQL Workbench setting for remote PC
Connection Method: Standard TCP/IP over SSH
SSH Hostname: (public addr of EC2 instance)
SSH Username: ec2-user (default)
SSH Password: (blank)
SSH Key File: (pem that was downloaded when EC2 instance created)
MySQL Hostname: localhost
MySQL Server Port: 3306 (default)
Username: root
Password: (blank)
Default Schema: (blank)

そして Test Connection ボタンを押してテスト。
成功したら OK を押して保存。
作った Connection をクリックすると繋がる。

command line tool from remote PC

mysql commandline client の在りか
OSX の場合


/Applications/MySQLWorkbench.app/Contents/MacOS/mysql


remote PC から ssh トンネルを使って commandline tool で繋ぐ。
まず ssh トンネルを作る。これは1つのプロセスとなる。トンネルの入り口は local PC で他に使われていない任意のポートで良い。ここでは 6501。


ssh -N -L 6501:localhost:3306 ec2-user@ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com -i private_key.pem


そしてトンネルの入り口をポート指定して繋ぐ。この例は ssh で繋いだマシン内で DB が走っているので 127.0.0.1 を指定する。"localhost" ではだめ。


mysql -u root -p -P 6501 -h 127.0.0.1


ref:
http://thekeesh.com/2014/01/connecting-to-a-rds-server-from-a-local-computer-using-ssh-tunneling-on-a-mac/


そのまま mysql コマンドのインタラクティブコンソールで操作もできるし、mysql コマンドに text を読ませて操作もできる。


mysql -u root -p -P 6501 -h 127.0.0.1 -B < db_definition.sql

create database Database;

create table Database.Table (
    FIELD1 int primary key,
    FIELD2 varchar(20),
    FIELD3 varchar(80),
    index (FIELD2)
);


コマンドラインSQL を投入もできる。

$ mysql -u root -P 6501 -h 127.0.0.1 -B -t -e "show databases;show tables in Database;show fields in Database.Table"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Database           |
| mysql              |
| performance_schema |
+--------------------+
+--------------------+
| Tables_in_Database |
+--------------------+
| Table              |
+--------------------+
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| FIELD1 | int(11)     | NO   | PRI | NULL    |       |
| FIELD2 | varchar(20) | YES  | MUL | NULL    |       |
| FIELD3 | varchar(80) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+