3

Wordpressを利用したWebサイトを新しいサーバーに切り替え、同時にドメイン名を変更しています。つまり、MySQLデータベースで多くのフィールドを見つけて置き換える必要があります。

具体的には、「http://olddomain.com/?p=34」などのMySQLのフィールドに表示される場合は常に、「olddomain.com」を「newdomain.com」に置き換える必要があります。

MySQLデータベースで置換を大規模に見つけるにはどうすればよいですか?SQLコマンドで「olddomain.com」が含まれるフィールドを検索できることは知っていLIKEますが、フィールドの特定の部分を置き換えるにはどうすればよいですか?

4

4 に答える 4

5

この目的のために、この検索および置換スクリプトを使用できます。

http://interconnectit.com/124/search-and-replace-for-wordpress-databases/

著者が言っreplaceたように、これらの場合、生は良くありません

ドメイン間で WordPress (またはデータベースでシリアライズされた PHP 文字列を使用するその他のプラットフォーム) を移行する場合、シリアライズされた文字列の長さの整合性を維持する安全な検索と置換の方法を使用する必要があります。たとえば、localhost から thenewdomain.com への単純なダンプ ファイルは、文字列の長さは変わりますが、シリアル化された文字列のインデックスは変わらないため、問題があります。その結果、設定が失われ、ウィジェットが消えます。良くない。

Wordpress.orgのドキュメント自体で参照されています。

于 2012-05-30T20:59:05.013 に答える
4

MySQL のREPLACE()関数を使用できます。

UPDATE `table` SET `fieldname` = REPLACE(fieldname, 'olddomain', 'newdomain');

別のオプションは、データベースをダンプし、選択したエディター内で検索と置換を使用することです。

于 2012-05-30T20:55:19.753 に答える
1

これはあなたを助けるはずです。olddomain.comに置き換えるだけnewdomain.comです。の左右の文字列olddomain.comは同じままです。

UPDATE tablename 
SET columnname = REPLACE(columnname, 'olddomain.com', 'newdomain.com')
WHERE columnname LIKE '%olddomain.com%';

これが関数の仕組みです-REPLACE(text_string, from_string, to_string)

于 2012-05-30T20:57:16.507 に答える
-1

サーバーを切り替えるとデータベースをダンプする必要があるため、create スクリプトで olddomain を newdomain に置き換えるだけです。

于 2012-05-30T20:58:05.260 に答える