LoginSignup
8
0

More than 3 years have passed since last update.

DockerでMySQLクライアントを動かしRDS(MySQL)に接続する

Last updated at Posted at 2019-08-07

構成イメージ

スクリーンショット 2019-08-07 8月7日.57.27.png

MySQL(RDS)のDBへ、K8sコンテナ上のMySQLクライアントから接続確認する方法、SQLを流す際のメモです。
同じVPC内のプライベートサブネットに配置してあるRDSインスタンスへ、パブリックサブネットに配置してあるK8sクラスタノードからアクセスします。
既にRDSのDBインスタンスを作成しセキュリティグループの設定なども完了している事が前提です。

DockerでMySQLクライアントを起動してコンテナからMySQLに接続

sudo docker run -it --rm mysql mysql -h{RDSインスタンスのエンドポイント} -u{ユーザー名} -p

・K8sのワーカーノードにsshログインし、コンテナ上で上記を実行します。
・ここでパスワードを聞かれるのでRDSインスタンス構築時に入力したパスワードを入力するとMySQLに接続できます。

DockerでMySQLクライアントを起動してコンテナからMySQLに接続(ファイルを指定してSQL実行する場合)

sudo docker run -v /{マウント元ファイルパス}:/work -it --rm mysql mysql -h{RDSインスタンスのエンドポイント} -u{ユーザー名} -p

・-vでボリュームをマウントします。
・マウント元ファイルパスにはK8sワーカーノード上のファイルを配置しているディレクトリパスを指定します。
・ここではマウント先ディレクトリを/workとしていますが任意のものを設定します。

ファイルを指定してSQL実行

source /{マウント先パス}/{ファイル名}

・source /{マウント先のパス}/{ファイル名}となるように指定する事でファイルに記載したSQLを実行できます。
・ボリュームをマウントしていないと、sourceコマンドでファイルを指定してSQLを流そうとした際に以下のようなエラーとなるためご注意ください。
 ERROR:
 Failed to open file 'ファイル名', error: 2

8
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
8
0