おつかれさまです。Dです。
たまにmysqldumpコマンドを利用してデータベースのリストアやバックアップを行ったりするのですが、ふとどんなオプションがあるんだろう思ったので、少し調べてみました。
備忘録がてらにまとめていきたいと思います。
内容
一般的によく使いそうな最低限のオプションは以下になります。
オプション | 内容 |
-u | データベースへ接続するユーザー名を指定するオプション |
-p |
パスワードを指定するオプション 例)パスワードがabcdの場合 |
-h | 接続するデータベースサーバーのホスト名やIPアドレスを指定するオプション 省略すると自ホストを示す「localhost」になるので、リモート越しで接続する場合はほぼ必須になります |
以下はその他知ってたら便利なオプションになります。
(使ったことないやつばっかりやんけっていうのはご了承を。。)
オプション | 内容 |
-B | 複数のデータベースを指定するオプション 特定のデータベースだけダンプしたいなって時に便利です |
-A | 全てのデータベースを指定するオプション まどろっこしいことせずに全部移したいんやって時に便利です |
--ignore-table | 特定のテーブルだけ除外するオプション セッション情報など一時的に格納するデータが大きすぎるため、そのテーブルは除外してダンプしたいなみたいな時に便利らしいです(筆者未使用) |
--no-create-info | テーブル内のデータのみダンプするオプション 既存のテーブルにデータだけをリストアしたい場合に便利らしいです(筆者未使用) |
--no-data | テーブルの構造のみダンプするオプション テーブルのデータを後から一気にリストアしたいけど、先にテーブルだけリストアしたいみたいな時に便利らしいです(筆者未使用) |
--single-transaction | ダンプを行う時にデータの整合性を保ちながらダンプを取得出来るオプション 稼働しているデータベースのダンプを取得する際は便利です 注意点としてはInnoDBのみ効果があります |
--quick | 大きなテーブルをダンプする際にメモリ消費率を抑えるオプションです 通常、ダンプの際はメモリにバッファをするのですが、そのバッファをせずに1行ずつ実行するためメモリの消費率が低くなります |
--add-drop-table |
ダンプファイル内の各テーブルの作成前に「DROP TABLE IF EXISTS」を追記してダンプするオプションになります |
【まとめ】
これだけでもなかなかのオプションの数なんですが、まだまだ記載出来ていないものがあります、、
今回は気になったものを記載していきました。
これを読んで他のオプションも気になった人はぜひ調べてみてください!