CMSを導入したサーバーを移転する場合、データベースに記録された「エントリーに添付されている画像のURL」や「サーバーのフルパス」を置換する必要があります。

エントリーが数百件あったりすると、ひとつひとつ修正するのはほぼ不可能です。 SQL文のreplaceを使うと、一度に置換することが可能です。

置換に失敗した場合、元に戻せません。
インポートした直後でない場合は、必ず、現在のバックアップを取っておいてください。

新しいサーバーにデータベースをエクスポート→インポートしてから、PHPMyAdminなどの管理ツールやシェルコマンドから、以下のSQL文を実行します。

update ★テーブル名★ set ★セル名★ = replace(★セル名★,'置換前の文字列','置換後の文字列');

Movable Typeのサーバーのフルパスを置換

例えば、MovableTypeのブログ設定の「サーバーのフルパス」を変更するときに

  • 旧サーバーのフルパス: /server/full/path/old/public_html/
  • 新サーバーのフルパス: /server/full/path/new/www/

だった場合は、以下のように「mt_blog」テーブルを書き換えます。

update mt_blog set blog_site_path = replace(blog_site_path, '/server/full/path/old/public_html/','/server/full/path/new/www/');

WordPressの設定と投稿内のドメインを置換

localhostで作業していたWordPressを、データベースごと本番サーバーに移行する場合は、データベース内のドメインの書き換えが必要です。 特に変わったプラグインを入れていなければ、wp_optionテーブルの「option_value」セルと、wp_postsテーブルの「post_content」「guid」のドメインを置換すればよいです。

update wp_options set option_value = replace(option_value,'http://localhost','http://example.com');
update wp_posts set post_content = replace(post_content,'http://localhost','http://example.com');
update wp_posts set guid = replace(guid,'http://localhost','http://example.com');