mysqldumpの使い方 基本構文編

はじめまして、こんにちは。システムエンジニアのリョータです。

最近MySQL、特にmysqldumpを利用することが多かったので、使い方をまとめてみました。

基本構文

まずはmysqldumpの基本の構文から。

1つのデータベースを対象とする場合(テーブルの指定が可能)


mysqldump [オプション ...] データベース名 [テーブル名 ...]
※テーブルを指定しないと、全てのテーブルが対象となります。 ※テーブルを指定すると、指定されたテーブル全てが対象となります。 ※特定のテーブルを対象としたくない場合は、ignore-tableオプションを利用してください。
データベースを複数対象とする場合


mysqldump [オプション ...] --databases [オプション ...] データベース名 [データベース名 ...]
全てのデータベースを対象とする場合


mysqldump [オプション ...] --all-databases [オプション ...]
※databasesもall-databasesもオプションの1つで、データベース(テーブル)の指定が変化するようです。

デフォルトのオプション指定

デフォルトのオプションはファイルで指定できます。
オプションを指定するファイルの名称は以下の二つです。

  • my.ini
  • my.cnf
※iniのほうが優先のようです。
またWindows環境では、以下のディレクトリが探索されるようです。

  • C:\Windows\
  • C:\
  • MySQLのインストールされたディレクトリ
対象となるファイルはhelpオプションで確認できます。
既にファイルで指定されているオプションはprint-defaultsで確認できます。
※デフォルトで有効なオプションは出力されないようです。

ファイルでのオプション指定方法

ファイルでの指定方法は、quickとmax_allowed_packetが16MBなら下記の書き方でOKです。

[mysqldump]
quick
max_allowed_packet = 16M
オプショングループを_localと指定した場合は、以下のような書き方になります。


[mysqldump_local]
quick
max_allowed_packet = 16M

オプション

どこもテキストベースで書かれていて、ほしいオプションを探すのが大変。
わかりやすく書かれた一覧がどこにもない!

ないなら作ってしまえ、ということで次回、オプションの一覧です。
DXO株式会社

DXO株式会社

〒103-0014
東京都中央区日本橋蛎殻町2-13-6
EDGE水天宮8F
E-Mail : contact-info@dxo.co.jp
URL : https://dxo.co.jp