2017-11-22 8 views
0

私は、Wordpressのマルチサイトデータベースに数万のテーブルを持つMySQLデータベースを持っており、それらを数千もエクスポートして新しいデータベースにインポートする必要があります。大規模なMySQLデータベースから何千ものテーブルをエクスポートするには

"mysqldump -u user -p database_name table_1 table_2 table_3 > filename.sql"のようにmysqldumpを使うことができますが、このスケールを作るにはどうすればよいですか?それが助け場合は、次のように、テーブルの名前は次のとおりです。「wp_blogid_tablename」のblogidは、ブログのID(エクスポートする1​​000のブログの周りにあります)で、テーブル名は、例えば、多くの異なるテーブル名のいずれかです。

wp_8_commentmeta 
wp_8_comments 
wp_8_links 
wp_8_options 
wp_8_postmeta 
wp_8_posts 
wp_8_referer_blacklist 
wp_8_referer_visitLog 
wp_8_signups 
wp_8_term_relationships 
wp_8_term_taxonomy 
wp_8_termmeta 
wp_8_terms 
+0

...元のデータベースからエクスポートされたすべてのテーブルをドロップする方法を見つけ出すことです大規模なMySQLデータをエクスポートするためのオプションを提供しています。 [WPデータベースのバックアップ](https://wordpress.org/plugins/wp-database-backup/)、あなたはそれを簡単に見つけることができます。 –

+0

多分この記事はあなたを助けることができますhttp://www.webhat.in/article/miscellaneous/shell-script-to-backup-mysql-database/ –

答えて

0

あなたはしかしテストこれを試すことはできませんが -

mysqldump -u user -p database_name table_blogid_* > wp_blogid.sql 
0

最初のアプローチが動作しない場合があります。とにかく、ここにあなたのための別の解決策である -

mysqldump DBNAME $(mysql -D DBNAME -Bse "show tables like 'wp_8_%'") > wp_8.sql 

は、またはあなたがこれを試すことができ、最初のファイルにテーブルを取得する - 今すぐテーブルをエクスポートするsqldumpスクリプトを実行

mysql -N information_schema -e "select table_name from tables where table_schema = 'databasename' and table_name like 'wp_8_%'" > wp_8_tables.txt 

を -

mysqldump -u user -p database_name `cat wp_8_tables.txt` > wp_blogid.sql 
+0

私は同様のアプローチを試みましたが、結局私はmydumperコマンドは簡単でした。 – stuartm

0

これまでの最良の解決策は、数字の配列(ブログID)を持つシェルスクリプトを作成してループし、mydumperコマンドを使用してSQLテーブルを単一のディレクトリにエクスポートすることでしたectory。コマンドはこのように見えた:

mydumper --database="mydbname" --outputdir="/path/dir/" --regex="mydbname\.wp_${i}_.*" 

かつて私はmyloaderコマンドを使用して、新しいデータベースにSQLファイルのすべてをロードすることができた完成

${i}は、アレイループからのブログのIDです):

myloader --database="mynewdbname" --directory="/path/dir/" 

次の課題は、多くのWordPressのプラグインがあります

関連する問題