web-dev-qa-db-ja.com

--all-databases dumpから単一のデータベースをインポートします

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

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

64
savageguy

mysqldump出力は、単にSQLステートメントのセットです。

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

mysql -D mydatabase -o mydatabase < dump.sql

これは、mydatabaseが使用されている場合にのみコマンドを実行します

71
Quassnoi

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

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

ここで、destdbnameは復元したいデータベースです。

私見よりはるかに安全な別のオプションは、--all-databasesダンプ。例:

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

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

がんばろう

(クレジットは次のとおりです:Darren Mothersele- 彼のページ を参照)

73
Hetzbh