SSH経由でMySQL接続->SQL実行を1発でやろうとしてハマった話


SSH経由でMySQL接続->SQL実行を1発でやったるでー!!(`Δ´)

1.まずは、踏み台サーバにアクセスするから

ssh -i {秘密鍵} {ユーザ}@{ホスト}

2.次に、mysqlに接続したいから(パスワードも一気にいれたろ...)

mysql -h {DBホスト} -P {ポート} -u {DBユーザ} -p{パスワード}

3.最後に、実行したいSQLは

select * from sample_table

4.この3つを一発でやりたいから、こうじゃ!!(⊙ꇴ⊙)

ssh -i {秘密鍵} {ユーザ}@{ホスト} mysql -h {DBホスト} -P {ポート} -u {DBユーザ} -p{パスワード} sample_db -e "select * from sample_table"

ほい!実行!!

...(゜▽゜)
なんか思ってるのと違う...

じゃ、じゃあ、1発でやらないで一個一個やると?

...

上手くselectされるぞ?どゆこと??ヽ(;▽;)ノ

コマンドの間違いじゃなさそう...
なら、【-V】でバージョン見てみるか

mysql  Ver 15.1 Distrib 5.5.62-MariaDB, for Linux (x86_64) using readline 5.1

...バージョンでるやんけ

ってことは、こいつが怪しい?

-e "select * from sample_table"

まさか、【"】を【'】に変えるとか?

ssh -i {秘密鍵} {ユーザ}@{ホスト} mysql -h {DBホスト} -P {ポート} -u {DBユーザ} -p{パスワード} sample_db -e 'select * from sample_table'

...

selectされた( ゚∀ ゚)

一発で実行するときは【'】じゃないとダメなのね...