90

--all-databases mysqldump から単一のデータベースをインポートすることは可能ですか? ファイルを手動で変更できると思いますが、これを行うコマンドラインオプションがあるかどうか疑問に思っています。

私はサーバーを移動しており、多くのデータベースを持っています。そのほとんどは現在必要ないか、現時点では必要ありませんが、必要に応じて単一のデータベースを復元するオプションが必要です。

4

4 に答える 4

118

次のコマンドを使用できます。

mysql -u root -p --one-database destdbname < alldatabases.sql

destdbname復元したいデータベースはどこにありますか。

私見の方がはるかに安全な別のオプションは、--all-databasesダンプからDBを抽出することです。例:

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql

dbname目的のデータベース名に置き換えます。alldatabases.sqlは、sql-dump ファイルの名前です。そうすれば、分離された DB がファイルに保存され、簡単な mysql コマンドを使用して復元できます。

(クレジットは Darren Mothersele に送られます -彼のページを参照してください)

于 2014-09-22T13:58:13.757 に答える
84

mysqldump出力は単なる一連のSQLステートメントです。

コマンドラインで目的のデータベースを指定し、次を使用して他のデータベースに対するコマンドをスキップできます。

mysql -D mydatabase -o mydatabase < dump.sql

mydatabaseこれは、使用中の場合にのみコマンドを実行します

于 2010-02-26T14:51:02.317 に答える