mysqldumpして直接zip圧縮するコマンド(windows、7-Zipにパスが通っている場合)
mysqldumpで、ダンプして、出力のSQLファイルを直接zip圧縮するコマンドを解説する。なお、このページで書いているのはWindowsのコマンドであるので注意。
環境ごとのページ一覧
このページは、Windowsで、なおかつ7-Zipがセットアップ済の環境向けのページである。直接圧縮については、環境ごとに3つのページを作成しているので、確認のこと。前提
7-Zipがインストールされ、パスが通っていることが前提である。もし7-Zipを使っていない場合は、こちらの記事を参照のこと。
コマンド
コマンドは下記のとおりである。
mysqldump -u username -ppassword dbname | 7za.exe a dumpfilename.sql.zip
具体例
少し具体的に書こう。DB情報等が下記であったとする。
項目 | 値 |
---|---|
DBユーザ名 | pudding |
DBパスワード | qwerty123456 |
DB名 | zipcode |
このDB情報等を反映すると、下記のように書くことになる。
mysqldump -u pudding -pqwerty123456 zipcode | 7za.exe a dumpfilename.sql.zip
なお、zip圧縮の機能はmysqldump自体には備わっていない。上記は、「mysqldumpの出力結果を7zaに送って圧縮する」というコマンドである。
出力されるsqlファイル
出力されるSQLファイルは、普通にダンプする場合と全く同じである。
直接zip圧縮される
なお、このコマンドでは、テキストファイルとしてのSQLファイルは全く生成されない。たとえば、「30GBのダンプファイル(SQLファイル)の出力が予想されるがHDD空き容量が10GBしかない」という場合であっても、おそらくダンプできる。
「zip圧縮される過程で、一旦テキストファイルとしてのSQLファイルが生成されるのでは?」と、不安になる人もいると思うが、上記コマンドでは、そのようなことはない。安心である。
用途
zip圧縮されるということで、下記のような場面で使われることが多いだろう。
- ストレージ空き容量が少ない
- 別のサーバにダンプファイルを転送したいが、通信回線に負担をかけたくない
- 別のサーバにダンプファイルを速く転送したい
- 非常用のバックアップとしてダンプするので、極力、保存するファイルサイズを小さくしたい