75

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

4

3 に答える 3

94

デフォルトmysqldumpでは、常にCREATE DATABASE IF NOT EXISTS db_name;ダンプ ファイルの先頭にステートメントが作成されます。

[編集mysqldump]ファイルとそのオプションに関するいくつかのこと:

--all-databases-A

すべてのデータベースのすべてのテーブルをダンプします。これは、--databasesオプションを使用して、コマンド ラインですべてのデータベースに名前を付けることと同じです。

--add-drop-database

DROP DATABASE各ステートメントの前にステートメントを追加しCREATE DATABASEます。通常、このオプションは--all-databasesor--databasesオプションと組み合わせて使用​​されます。これCREATE DATABASEは、これらのオプションのいずれかが指定されない限り、ステートメントが書き込まれないためです。

--databases-B

いくつかのデータベースをダンプします。通常、mysqldumpコマンド ラインの最初の name 引数をデータベース名として扱い、その後の名前をテーブル名として扱います。このオプションを使用すると、すべての名前引数がデータベース名として扱われます。CREATE DATABASEandUSEステートメントは、各新しいデータベースの前に出力に含まれます。

--no-create-db-n

このオプションは、 orオプションが指定CREATE DATABASEされた場合に出力に含まれるステートメントを抑制します。--databases--all-databases

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

あなたの質問に答えるには:

  • ダンプするデータベースが 1 つある 場合は、ステートメントに--add-drop-databaseオプションを含める必要があります。mysqldump
  • ダンプするデータベースが複数ある場合は、オプション --databasesorを使用する必要が--all-databasesあり、CREATE DATABASE構文は自動的に追加されます

詳細については、MySQL リファレンス マニュアルを参照してください。

于 2013-05-09T00:59:11.843 に答える