0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

リモートサーバーのmysqlからローカルに落とし込む ~メモ~

Posted at

RDSのDBインスタンスからmysqlの特定のテーブルデータをエクスポートしようとしたのですが、
SequelProでssh設定が適切でなかったのか、awsで構築したRDSのDBインスタンス内のmysqlにアクセス出来なかったので、

・ec2インスタンスにssh接続
・mysqlデータをdump
・scp接続でlocalのmysqlに落とす。

という手順を踏みました。
初めて扱うコマンドが大半であったので、メモ。。。

まずRDSのDBインスタンスに接続できる
リーモートサーバー(ec2インスタンス)にsshアクセスします。

そこで下記コマンドを実行

remote-sever $ mysqldump -h host_name -u user_name -p database_name table_name > file_name.sql
オプション 名所 説明
-u ユーザー名 サーバに接続するユーザー名
-p パスワード パスワードを指定してログイン
-h ホスト名 接続するサーバのホスト名(default: localhost)
-B データベース 複数のデータベースを名前を指定してダンプ
-A すべてのデータベース 複数のデータベースをまとめてダンプ
-d 定義のみ 定義のみダンプを取りたいときに指定
-n データベースは無視 データベースを作成せずにダンプ
-t テーブルは無視 テーブルの作成を行わずにダンプ

optionを追加した後、">" で作成ファイル名を指定。

remote-sever $ ls
file_name.sql

一旦リモートサーバーを抜け後、scpアクセスします。

SCP(Secure Copy Protocol)

「SFTP」同様、Secure Shell(ssh)に含まれるsshの機能を使ってセキュリティ性の高いファイル転送を行うプロトコルといえます。
「SFTP」に比べて通信速度は速いといわれているのですが、この「SCP」を利用する場合はサーバにUNIX系のシェルが備えられている必要があります。Webサーバを作ろうとするとほとんどのサーバにはシェルは入っているので意識することは少ないです。

$ scp user_name@host_name:~/file_name.sql ~/Desktop/
$ scp [ユーザー名]@[ホスト名]:[コピー元PATH] [localのコピー先]
オプション 名所 説明
-u ユーザー名 サーバに接続するユーザー名
-i 鍵ファイル ssh接続に使用する鍵ファイルを指定する
-P ポート番号 (sshのポートを変更している場合などに)接続に使用するポートを指定する
-p コピー元のタイムスタンプやパーミッションを保持する
-r ディレクトリごと再帰的にコピーする

うまくDesktopにsqlファイルをエクスポート出来ました。
あとはSequelProでlocalのmysqlにインポートすれば反映されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?