エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【docker】コンテナ内のmysqlのdumpを一行で取る【371日目】

こんなとき使う

mysqlコンテナを立てた。

dumpを取りたい。

他のDBにデータを移したい。そんなとき。

コマンド

docker exec -it container_name-mysql bash -c 'MYSQL_PWD=password mysqldump -u user db_name' 1> sql.dump

内容

docker exec -it container_name-mysql xxxでコンテナにxxxのコマンドを、container_name-mysqlで実行する。

bach -cで、bashに次に指定したコマンドを実行させます

MYSQL_PWD=password mysqldump -u user db_name' 1> sql.dump、mysqldumpでdumpを取りますが、パスワードを変数に渡しています。
コマンドで -ppasswordとしてもいいですが、そうすると、パスワードをコマンド内に書いてしまうのは良くないというworningがsql.dumpに書き込まれてしまうので、変数に逃してやってます。