1つのデータベースと約150個のテーブルを持つ大きなSQLファイルがあります。そのデータベースをインポートするのにmysqlimport
を使用したいと思いますが、インポートプロセスが無視したり、いくつかのテーブルをスキップしたりしたいと思います。すべてのテーブルをインポートするための正しい構文は何ですか?しかし、それらの一部を無視しますか?ありがとうございました。MySQLインポートデータベースですが、特定のテーブルを無視します
答えて
mysqlimport
は、SQL文をインポートするための適切なツールではありません。このツールは、CSVなどの書式付きテキストファイルをインポートするためのツールです。
bash > mysql -D your_database < your_sql_dump.sql
どちらmysql
もmysqlimport
はあなたが必要とする機能を提供します。あなたがやりたいことは、このようなコマンドでmysql
クライアントに直接SQLダンプを養うです。あなたのベストチャンスは、ダンプ全体をインポートし、あなたが望まないテーブルをドロップすることです。
ダンプの元のサーバーにアクセスできる場合は、mysqldump --ignore-table=database.table_you_dont_want1 --ignore-table=database.table_you_dont_want2 ...
で新しいダンプを作成できます。
コメントありがとうございます。私の問題は、MySQL Workbench内からimportコマンドを使用すると、このプロセスは動作しますが、テーブルの約3分の1しかインポートされず、特定のテーブルにハングすることになります。問題テーブルのためにインポートされたすべてのテーブルを取得できません。 – DanielAttard
ダンプをコマンドラインから直接インポートしてみてください。あなたは同じ問題を抱えていますか?少なくとも、何らかのエラーメッセージが表示されることがあります。 – RandomSeed
必要であれば、一度にこの一つのテーブルを行うことができます。
mysqldump -p sourceDatabase tableName > tableName.sql
mysql -p -D targetDatabase < tableName.sql
RandomSeedによって受け入れられた答えは長い時間がかかることがあります!テーブルをインポートすると(後でドロップするだけで)、サイズによっては無駄になることがあります。ファイルの場合
は、私は現在、7ギガバイト、私はそこに「必要」はありません、ログテーブルのデータとなっている6ギガバイト程度のファイルを取得する
mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql
を使用して作成しました。このファイルをリロードするには数時間かかります。私は(開発目的のために、またはこれまでにライブの回復のために必要な場合)再ロードする必要がある場合は、私は、このようにファイルをスキムミルク:
sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql
としてリロードします。
mysql -u user -ppasswd DBname < reduced.sql
これは私の完全なデータベースを提供し、 「望ましくない」テーブルが作成されていて空です。実際にテーブルを必要としない場合は、ロードが完了した後に空のテーブルをドロップするだけです。 - 「TABLE_TO_SKIPのINSERT INTO」含まれている場合がありますあなたのダンプの手順に注意
sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql
「ガッチャ」をあります:
複数のテーブルのためには、このような何かを行うことができます。
これは天才で、1時間30秒です。 –
よろしく!素晴らしい、私はちょうど1GBから72MBにバックアップを減らしました、私に多くの時間を節約していただきありがとう –
受け入れられた答えよりも良い、 – Edgar
- 1. MySQLは特定の行を無視しますか?
- 2. MySQLクラスタ7.2.2無視設定やテーブルが満杯エラーです
- 3. マルチブランチパイプラインでポーリングが特定のメッセージのコミットを無視します
- 4. MySQL GROUP BY列で特定の値を無視する
- 5. 特定のインスタンスでは、スタイルイントがインデントを無視しますか?
- 6. サブソニック設定 - 特定のテーブルを無視する方法
- 7. SQL Serverテーブルの特定の列を更新し、Null値を無視します。
- 8. mysql- mysqlテーブルから重複した値を無視する
- 9. mysqldumpでテーブルを無視しますか?
- 10. "git pull"して特定のコミットを無視できますか?
- 11. プロジェクト全体で特定のエラーを無視します
- 12. getAbsolutePath特定のフォルダを無視する
- 13. pg_restore - 特定のエラーを無視する
- 14. Eslintは特定のディレクトリの特定の規則を無視します
- 15. 特定の文字を無視してMySQLをクエリする方法
- 16. PHP再帰ディレクトリイテレータ - 特定のファイルを無視します。
- 17. 特定の列を無視してRでデータをスケーリングする
- 18. Sass Preprocessors - 特定のパターンを無視できますか?
- 19. 空のテーブルを無視し
- 20. すべてのMySQLテーブルをリストアップして特定のテーブルを除外します
- 21. webdriverが特定のページの待機を無視しています
- 22. regexが特定のシンボルの行を無視する
- 23. Rails 5のアセットパイプラインが特定のフォルダを無視する
- 24. HTMLテーブルにCSVを読み込む - 特定のカラムを無視する
- 25. Cookieで特定のサブドメインを無視するようにします
- 26. node_modulesを無視しますが、一部のフロータイプでは無視します
- 27. 特定のテキストを含まない行を無視する
- 28. mysqlはテーブルの特定のグループのみを合計します
- 29. mysqlテーブルの特定の行のデータをカウントします
- 30. Eclipse STS svn svn:無視して、特定のファイルを無視させない
可能かどうかわかりません。あなたは.sqlのバックアップを作成し、テキストでそれらを探し出し、それらを壊すことができますか、これはあなたが何度も何度も何度もやっていることでしょう。 REM stmtを見つけて置き換えるためのCTRL-Hや、最後に「table1からの削除」を実行することができます。 "table2から削除"ソートスクリプト – Drew
省略が必要な部分はありますか?そして、彼らはどのように識別されていますかたぶん、すべてのものをインポートし、削除したいテーブルにdeleteテーブルを置いておきます。 – lurker
私は、インポートプロセスが完了しないように、SQLファイル内のテーブルの1つに問題があると思われます。コマンドラインからのインポートプロセスの使用がMySQL Workbenchからのインポートユーティリティの使用と異なるのかどうか知っていますか? – DanielAttard