DB のコンテナがすでに起動している時にやりたかったこと。自分用のメモとして書き残しておく。
今回は実行結果もログに出力します。
docker exec -i [DBコンテナ名] mysql -u [ユーザ名] -p[パスワード] [DB名] -vvv < ファイル名.sql > [ログファイル名].log
-p
とパスワードの間には半角スペースを入れない。そうすることでパスワード入力を省ける(セキュリティ的にはあまりよくない😇)。
-vvv
は MySQL のオプション。出力結果を冗長表示(詳細に表示)する。
※-v
-vv
-vvv
で冗長度合いが変わるらしい。
普段 docker exec
でコンテナに入るときは -it
をオプションで入力しているけれど、今回はターミナルを開かずワンライナーでSQLを実行したいので、 -i
だけオプションに指定すればよい。