C#とかVue.jsとかAWSとか興味のあることちまちまやってます。MySQL概要ローカル環境にて稼働するDockerのDB(MySQL)から全テーブル、全データのdumpを取得するシェルと取得したdumpデータを全リストアするシェルです。前提&補足シェルの中で登場する、パスについてローカル側のdataディレクトリとDockerコンテナ側の/bkupディレクトリはvolumesでマウントされている前提です。end"}1つ目のdockerコマンドでテーブル一覧を取得(dumpしたデータをテーブル毎に管理したかったから。2つ目のdockerコマンドでテーブル一覧を元にテーブル毎のdumpを取得って形の処理です。ワンライナーでよくわからないので詳細を見ていきます。下記のワンライナーです。/bkup/all_tables.txt;)"詳細を見ていきます。tablesコマンドをmysqlコマンドに渡してテーブル一覧を取得します。取得したテーブル一覧の1行目にカラム名が入っていて邪魔なのでsedコマンドで1行目を消しています。下記のワンライナーです。前述のテーブル一覧を元にテーブル毎のdumpデータを取得します。/bkup/all_tables.txt;)"詳細を見ていきます。/bkup/all_tables.txt;whileで先程取得したテーブル一覧を流し込んでmysqldumpコマンドに喰わせています。今回はgit管理したかったのですが、timestampが差分で毎回出て邪魔だったので、sedコマンドでtimestamp部分のみ消しています。ポイント:$のエスケープdockerコンテナ内で変数を使うには$マークのエスケープが必要だったようでどん詰まりしました。end"}特に難しいことはしていません。取得したダンプデータをdockerのDBに流し込んています。雑感マジでドルマークのエスケープでハマった。»プロフィールid:HM_Atlasチラ裏のメモ帳モノづくりが好き。技術で世の中(大袈裟)を便利にするのが好き。(1)月別アーカイブリンクTwitterGitHubSteam自滅しがちQiitaはてなブログをはじめよう!HM_Atlasさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。