created: 2020-02-27T07:50:22.000Z

ポートフォワードしてリモートのMySQLに接続する

リモートワークになったのでローカルの環境構築をしている

各種変数を設定

export SSH_USER=mossan
# `SSH_HOST` はここでは踏み台ホストのこと
export SSH_HOST=xxx.xxx.xxx.xxx
export DB_HOST=xxx.xxx.xxx.xxx
export DB_USER=app
export DB_NAME=prod

ポートフォワード設定

# ローカルの3306が埋まっていたので今回は33306を使う
$ ssh -f -N -L 33306:${DB_HOST}:3306 ${SSH_USER}@${SSH_HOST}
ssh の -f オプション

ssh の -f オプションはバックグラウンドでの実行になってくれる バックグラウンドなので起動したシェルを落とすと死ぬ(かゾンビになる)はず

-f Requests ssh to go to background just before command execution.

mysql_config_editor で接続情報の簡単化

$ mysql_config_editor set \
  --login-path=prod-master-portforwarded-33306 \
  --host=127.0.0.1 \
  --port=33306 \
  --user=$DB_USER \
  --password

mycliでつないで確認

$ mycli --login-path=prod-master-portforwarded-33306 prod