web-dev-qa-db-ja.com

コマンドラインでWordPress(MySQL)データベースを正しくエクスポート/インポートするにはどうすればいいですか?

通常、MySQLデータベースはこれらの単純なSSHコマンドを使用してエクスポートおよびインポートできます。

エクスポート:

mysqldump -u USERNAME -p DATABASE_NAME > filename.sql

インポート:

mysql -u USERNAME -p DATABASE_NAME < filename.sql

しかし、WordPressに関してはそれほど単純ではありません。私が見たものから、例えば--add-drop-tableのような追加のパラメータを言及する必要があります。

WordPressコーデックスは 情報を提供します しかし、それは雑然としているように見え、十分に明確ではありません。

コマンドラインを使っている人がWordPressデータベースをエクスポートおよびインポートするための適切なコマンドを(使用されている新しいパラメータの)説明付きで共有できれば素晴らしいでしょう。

また、データベースを扱うときにコマンドラインを使用するのが賢明ではなく、代わりにphpMyAdminのようなGUIを使用することが推奨されない理由はありますか?

7
its_me

それはWordpressのためにもとても簡単です。私のWPサイトをバックアップするには、次のようにします。

mysqldump -u <user> -p<pass> --quick --extended-insert <db-name> > backup.sql

mysqldumpドキュメント はすべてのパラメータの詳細を示します。

--extended-insertは、ダンプファイルからDBを更新するときのほうが速く、ダンプファイルを小さくします。

--quickはダンプの作成をより速くします。

あなたは本当にこれらのどちらも使う必要はありません、物事を少し速くするだけで、各行にinsertを書くことは私を幸せにするだけです - あなたのオリジナルのdump構文はちょうどいいでしょう。

DBにドメイン固有のエントリがあることを忘れないでください。そのため、バックアップ/復元にこの方法を使用している場合は問題ありませんが、one.comからtwo.comに移動する場合は編集する必要があります。ダンプを復元した後のエントリはwp_optionsにあります。

11
Steve Claridge

コマンドラインの基本を学ぶために時間を費やしたので、phpMyAdminを使う機会が少なくなりました。しかし、エントリをブラウズまたは編集する必要がある場合(Steveが前述したようにwp_optionsエントリを編集する場合など)は、それが簡単になると思います。バックアップする必要がなかった特に大きなテーブル(プラグインのログなど)を除外したいときにもGUIを使いました。しかし、私はあなたが追加することができることを発見しました

--ignore-table=my_db_name.my_table_name my_db_name
1
markcbain

サイトを新しい場所にコピーします。

空のデータベースにインポートする場合は、エクスポート中に--add-drop-tableを使用してください。データベースをマージするためにインポートしている場合は、エクスポート中に--add-drop-tableを省略します。

パスが異なるので、毎回インポート後にwp_optionsを更新することを忘れないでください。また、.htaccessファイルを新しいパスで更新してください。

0
user3548101