No.394


【Docker】Mysqlをパイプで使うときのtty問題

時空を超えてあなたは一体何度我々の前に立ちはだかってくるというのだ! TTY!

 Mysqlに限らないけどdockerを使ってるとしょっちゅう出てくるTTY問題。

the input device is not a TTY

 そんなときはだいたいTTYを無効化してやると解決できる。


解決法

 -Tオプションで疑似ターミナル割り当てを無効化できる。

Docs » Docker Compose » コマンドライン・リファレンス » run

compose exec -T コンテナ コマンド

 Mysqlでパイプを使ってインポートする場合はこんな感じ。

compose exec -T mysq_container mysql --default-character-set=utf8mb4 database_name < sql.txt