1. ホーム
  2. mysql

データベース作成行を含むmysqldump

2023-09-14 22:04:11

質問

私は自分のファイルを別のコンピュータに移動している最中で、私が行いたいことの 1 つは、MySQL データベースのデータを転送することです。私はデータベースを .sql ファイルにダンプしたいのですが、ファイルに含まれるデータベース作成 db_name を持ち、そうすれば手動でデータベースを作成することなく、ファイルを mysql にインポートするだけでよいのです。それを行う方法はありますか?

どのように解決するのですか?

は常に mysqldump ステートメントをダンプファイルの先頭に作成します。

[ EDIT ] についていくつか。 CREATE DATABASE IF NOT EXISTS db_name; ファイルとそのオプションについてです。

mysqldump , --all-databases

全データベースの全テーブルをダンプします。これは -A オプションを使い、コマンドラインで全てのデータベースの名前を指定するのと同じです。

--databases

を追加します。 --add-drop-database 文の前に DROP DATABASE ステートメントの前に置きます。このオプションは通常 CREATE DATABASE または --all-databases オプションがないため --databases 文は書かれないからです。

CREATE DATABASE , --databases

複数のデータベースをダンプします。通常は -B はコマンドライン上の最初の name 引数をデータベース名として扱い、それ以降の名前をテーブル名として扱います。このオプションを使用すると、すべての name 引数をデータベース名として扱います。 mysqldumpCREATE DATABASE ステートメントは、それぞれの新しいデータベースの前の出力に含まれます。

USE , --no-create-db

このオプションは -n ステートメントが出力に含まれます。 CREATE DATABASE または --databases オプションが指定されます。

少し前に、ファイルの先頭にそのようなステートメントを持たないことについて尋ねる同様の質問が実際にありました(XMLファイルについて)。 その質問へのリンク はこちらです。 .

というわけで、質問にお答えします。

  • ダンプするデータベースが 1 つある場合、そのデータベースに対して --all-databases オプションで --add-drop-database ステートメントで指定します。
  • ダンプするデータベースが複数ある場合、オプションの mysqldump または --databases であり --all-databases の構文が追加されます。 自動的に

より詳しい情報は MySQL リファレンスマニュアル