mysqldumpオプションのすべて
mysqldumpのオプションを全部書く。
基本の3つ
データベースを丸ごとダンプ
mysqldump -u username -ppassword dbname > dumpfilename.sql
詳細:データベースを丸ごとダンプ|mysqldumpの教科書
ひとつのテーブルを指定してダンプ
mysqldump -u username -ppassword dbname tablename > dumpfilename.sql
詳細:ひとつのテーブルを指定してダンプ|mysqldumpの教科書
リモートサーバからダンプ
mysqldump -u username -ppassword -h 123.456.789.012 dbname > dumpfilename.sql
INSERT文のカスタム
INSERT文のみをダンプ
mysqldump -u username -ppassword --no-create-info dbname tablename > dumpfilename.sql
詳細:INSERT文のみをダンプ|mysqldumpの教科書
REPLACE文をダンプ
mysqldump -u username -ppassword --replace --no-create-info dbname tablename > dumpfilename.sql
完全なinsert文をダンプ
mysqldump -u username -ppassword --complete-insert dbname > complete-insert.sql
詳細:完全なinsert文をダンプ|mysqldumpの教科書
短いinsert文をダンプ
mysqldump -u username -ppassword --skip-extended-insert dbname > skip-extended-insert.sql
詳細:短いinsert文をダンプ|mysqldumpの教科書
短くて完全なinsert文をダンプ
mysqldump -u username -ppassword --complete-insert --skip-extended-insert dbname > short-and-complete-insert.sql
詳細:短くて完全なinsert文をダンプ|mysqldumpの教科書
create table文のカスタム
テーブルの構造のみダンプ(create文のみダンプ)
mysqldump -u username -ppassword -d dbname > stracture.sql
詳細:テーブルの構造のみダンプ(create文のみダンプ)|mysqldumpの教科書
drop tableを入れずにダンプ
mysqldump -u username -ppassword --skip-add-drop-table dbname > no-drop-table.sql
詳細:drop tableを入れずにダンプ|mysqldumpの教科書
insert文のみをダンプ
mysqldump -u username -ppassword --no-create-info dbname > only-insert.sql
詳細:insert文のみをダンプ|mysqldumpの教科書
database関連
データベースを丸ごとダンプ
mysqldump -u username -ppassword dbname > dumpfilename.sql
詳細:データベースを丸ごとダンプ|mysqldumpの教科書
drop databaseをつけてダンプ
mysqldump -u username -ppassword --add-drop-database --all-databases > dumpfilename.sql
詳細:drop databaseをつけてダンプ|mysqldumpの教科書
全てのデータベースをダンプ
mysqldump -u username -ppassword --all-databases > all-databases.sql
詳細:全てのデータベースをダンプ|mysqldumpの教科書
複数のデータベースを指定してダンプ
mysqldump -u username -ppassword --databases database1 database2 > multiple-databases.sql
詳細:複数のデータベースを指定してダンプ|mysqldumpの教科書
view関連
viewの結果データをCSV出力
SELECT * FROM (ビュー名) INTO OUTFILE "(ファイル名フルパス、円マークはエスケープ)" FIELDS TERMINATED BY ','; -- select文であることに注意
詳細:viewの結果データをCSV出力|mysqldumpの教科書
viewの定義情報をダンプ
mysqldump -u username -ppassword dbname viewname > create-view.sql
詳細:viewの定義情報をダンプ|mysqldumpの教科書
圧縮ファイルで出力
mysqldumpして直接gzip圧縮するコマンド(linux)
mysqldump -u username -ppassword dbname | gzip > dumpfilename.sql.gz
詳細:mysqldumpして直接gzip圧縮するコマンド(linux)|mysqldumpの教科書
mysqldumpして直接zip圧縮するコマンド(windows、7-Zipにパスが通っている場合)
mysqldump -u username -ppassword dbname | 7za.exe a dumpfilename.sql.zip
詳細:mysqldumpして直接zip圧縮するコマンド(windows、7-Zipにパスが通っている場合)|mysqldumpの教科書
7-zipにパスが通っていない場合は下記記事を参照
詳細:mysqldumpして直接zip圧縮するコマンド(windows、7-Zipを知らない人向け)|mysqldumpの教科書
CSVファイルへダンプ
CSVファイルへダンプ(Linux用)
mysqldump -u username -ppassword --tab=(出力先ディレクトリ) --fields-terminated-by=, dbname tablename
詳細:CSVファイルへダンプ(Linux用)|mysqldumpの教科書
viewの結果データをCSV出力
SELECT * FROM (ビュー名) INTO OUTFILE "(ファイル名フルパス、円マークはエスケープ)" FIELDS TERMINATED BY ',';
詳細:viewの結果データをCSV出力|mysqldumpの教科書
select結果をCSV出力
SELECT * FROM (テーブル名) where (条件文) INTO OUTFILE "(ファイル名フルパス、円マークはエスケープ)" FIELDS TERMINATED BY ',';
詳細:select結果をCSV出力|mysqldumpの教科書
開発・環境移行
リモートサーバからダンプ
mysqldump -u username -ppassword -h 123.456.789.012 dbname > dumpfilename.sql
全てのデータベースをダンプ
mysqldump -u username -ppassword --all-databases > all-databases.sql
詳細:全てのデータベースをダンプ|mysqldumpの教科書
複数のデータベースを指定してダンプ
mysqldump -u username -ppassword --databases database1 database2 > multiple-databases.sql
詳細:複数のデータベースを指定してダンプ|mysqldumpの教科書
テーブルの構造のみダンプ(create文のみダンプ)
mysqldump -u username -ppassword -d dbname > stracture.sql
詳細:テーブルの構造のみダンプ(create文のみダンプ)|mysqldumpの教科書
insert文のみをダンプ
mysqldump -u username -ppassword --no-create-info dbname > only-insert.sql
詳細:insert文のみをダンプ|mysqldumpの教科書
完全なinsert文をダンプ
mysqldump -u username -ppassword --complete-insert dbname > complete-insert.sql
詳細:完全なinsert文をダンプ|mysqldumpの教科書
短くて完全なinsert文をダンプ
mysqldump -u username -ppassword --complete-insert --skip-extended-insert dbname > short-and-complete-insert.sql
詳細:短くて完全なinsert文をダンプ|mysqldumpの教科書
その他コマンド
リモートサーバからダンプ
mysqldump -u username -ppassword -h 123.456.789.012 dbname > dumpfilename.sql
where句を使ってダンプ
mysqldump -u username -ppassword --where "(where条件)" dbname tablename > using-where.sql
詳細:where句を使ってダンプ|mysqldumpの教科書
基本的なコマンド
データベースを丸ごとダンプ
mysqldump -u username -ppassword dbname > dumpfilename.sql
詳細:データベースを丸ごとダンプ|mysqldumpの教科書
リモートサーバからダンプ
mysqldump -u username -ppassword -h 123.456.789.012 dbname > dumpfilename.sql
ひとつのテーブルを指定してダンプ
mysqldump -u username -ppassword dbname tablename > dumpfilename.sql
詳細:ひとつのテーブルを指定してダンプ|mysqldumpの教科書
以上です。