WordpressのDBコピーとURL置換の超簡単な方法

WordpressはサーバのURLを固定値でDBの中に格納しているので、たとえばtest.example.comwordpressデータを、staging.example.comにコピーしてもうまく動かない。そこで、データをダンプしてURLを置換してコピーするお手軽な方法をよく使う。


Wordpress1というDBのデータをWordpress2というDBにコピーしながら、データの中にあるURLを置換(test.example.comをstaging.example.comに)する方法
長いので途中改行をいれているが、本当は1行で実行する

mysqldump  -u root -h  127.0.0.1 wordpress1 | sed 's/test.example.com/staging.example.com/g' |
 mysql -u root  -h 127.0.0.1 wordpress2


遠隔のサーバのDBデータをローカルのDBにコピーする時は、sshのコマンドを使ってやると簡単。
長いので途中改行をいれているが、本当は1行で実行する

ssh user@server.name -p 22 'mysqldump  -u root -h  127.0.0.1 wordpress | gzip ' | 
zcat | sed 's/test.example.com/staging.example.com/g' | mysql -u root  -h 127.0.0.1 wordpress

これで、server.nameというサーバのwordpress DBを、ローカルのwordpress DBにコピーできる。
ファイル転送を早くするため、リモートサーバでgzip圧縮したのを、ローカルでzcatで解凍して、その後にsedで置換して、mysqlに投入