私は自分のファイルを別のコンピューターに移動しようとしていますが、MySQL データベースのデータを転送したいと考えています。データベースを .sql ファイルにダンプしたいだけでなく、データベース db_name をファイルに含めて作成したいので、データベースを手動で作成することなく、ファイルを mysql にインポートするだけです。それを行う方法はありますか?
3 に答える
デフォルトmysqldump
では、常にCREATE DATABASE IF NOT EXISTS db_name;
ダンプ ファイルの先頭にステートメントが作成されます。
[編集mysqldump
]ファイルとそのオプションに関するいくつかのこと:
--all-databases
、-A
すべてのデータベースのすべてのテーブルをダンプします。これは、--databases
オプションを使用して、コマンド ラインですべてのデータベースに名前を付けることと同じです。
--add-drop-database
DROP DATABASE
各ステートメントの前にステートメントを追加しCREATE DATABASE
ます。通常、このオプションは--all-databases
or--databases
オプションと組み合わせて使用されます。これCREATE DATABASE
は、これらのオプションのいずれかが指定されない限り、ステートメントが書き込まれないためです。
--databases
、-B
いくつかのデータベースをダンプします。通常、mysqldump
コマンド ラインの最初の name 引数をデータベース名として扱い、その後の名前をテーブル名として扱います。このオプションを使用すると、すべての名前引数がデータベース名として扱われます。CREATE DATABASE
andUSE
ステートメントは、各新しいデータベースの前に出力に含まれます。
--no-create-db
、-n
このオプションは、 orオプションが指定CREATE DATABASE
された場合に出力に含まれるステートメントを抑制します。--databases
--all-databases
少し前に、ファイルの先頭にそのようなステートメントがないことについて実際に尋ねる同様の質問がありました(XMLファイルの場合)。その質問へのリンクはこちらです。
あなたの質問に答えるには:
- ダンプするデータベースが 1 つある
場合は、ステートメントに
--add-drop-database
オプションを含める必要があります。mysqldump
- ダンプするデータベースが複数ある場合は、オプション
--databases
orを使用する必要が--all-databases
あり、CREATE DATABASE
構文は自動的に追加されます
詳細については、MySQL リファレンス マニュアルを参照してください。