最近MySQL、特にmysqldumpを利用することが多かったので、使い方をまとめてみました。
基本構文
まずはmysqldumpの基本の構文から。1つのデータベースを対象とする場合(テーブルの指定が可能)
mysqldump [オプション ...] データベース名 [テーブル名 ...]
※テーブルを指定しないと、全てのテーブルが対象となります。
※テーブルを指定すると、指定されたテーブル全てが対象となります。
※特定のテーブルを対象としたくない場合は、ignore-tableオプションを利用してください。
データベースを複数対象とする場合
mysqldump [オプション ...] --databases [オプション ...] データベース名 [データベース名 ...]
全てのデータベースを対象とする場合
mysqldump [オプション ...] --all-databases [オプション ...]
※databasesもall-databasesもオプションの1つで、データベース(テーブル)の指定が変化するようです。
デフォルトのオプション指定
デフォルトのオプションはファイルで指定できます。オプションを指定するファイルの名称は以下の二つです。
- my.ini
- my.cnf
またWindows環境では、以下のディレクトリが探索されるようです。
- C:\Windows\
- C:\
- MySQLのインストールされたディレクトリ
既にファイルで指定されているオプションはprint-defaultsで確認できます。
※デフォルトで有効なオプションは出力されないようです。
ファイルでのオプション指定方法
ファイルでの指定方法は、quickとmax_allowed_packetが16MBなら下記の書き方でOKです。
[mysqldump]
quick
max_allowed_packet = 16M
オプショングループを_localと指定した場合は、以下のような書き方になります。
[mysqldump_local]
quick
max_allowed_packet = 16M
オプション
どこもテキストベースで書かれていて、ほしいオプションを探すのが大変。わかりやすく書かれた一覧がどこにもない!
ないなら作ってしまえ、ということで次回、オプションの一覧です。