目次
DBをバックアップ
DB内の文字列置換を行う前に、念のためバックアップを取っておきます。
MySQLのバックアップを取れば十分だと思いますが、今回はAmazon Lightsailのスナップショット機能でサーバをまるごとバックアップします。
DB情報を確認
Search Replace DB を実行する際には、DBにおけるWordPress関連のユーザ名とデータベース名が必要になるため、それを確認しておきます。
- ユーザ名: bn_wordpress
- DB名: bitnami_wordpress
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5221
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select User, Host from mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| bn_wordpress | 127.0.0.1 |
| root | 127.0.0.1 |
| bn_wordpress | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
7 rows in set (0.02 sec)
mysql>show databases;
+--------------------+
| Database |
+--------------------+
| bitnami_wordpress |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
mysql> show tables from bitnami_wordpress;
+-----------------------------+
| Tables_in_bitnami_wordpress |
+-----------------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------------+
12 rows in set (0.01 sec)
mysql> quit
Bye
Search Replace DB を使ってDB内の文字列を置換
Search Replace DB をダウンロード
interconnect/it – Database Search and Replace Script in PHP
ダウンロードの際、氏名とメールアドレスを入力する必要があります。
「Search-Replace-DB-4.1.0.zip」のようなzipファイルが得られます。
Search Replace DB をサーバへアップロード
- 自分のWordPressサーバにzipファイルをアップロード。
例)WinSCPを利用する。AWSの管理画面からダウンロードしておいたSSH秘密鍵とパスフレーズでサーバへログインしアップロード。- アップロード先ディレクトリ: wp-config.php と同じディレクトリ
例)/home/bitnami/apps/wordpress/htdocs
- アップロード先ディレクトリ: wp-config.php と同じディレクトリ
- zipを解凍。
$ pwd
/home/bitnami/apps/wordpress/htdocs
$ ls -ltr
total 332
-rw-r----- 1 bitnami daemon 4253 Apr 17 02:50 wp-config.php
-rw-rw-r-- 1 bitnami daemon 3300 Apr 17 04:53 wp-load.php
-rw-rw-r-- 1 bitnami daemon 405 Apr 17 04:53 index.php
drwxrwxr-x 9 bitnami daemon 4096 Apr 17 04:53 wp-admin
-rw-rw-r-- 1 bitnami daemon 3133 Apr 17 04:53 xmlrpc.php
-rw-rw-r-- 1 bitnami daemon 31111 Apr 17 04:53 wp-signup.php
-rw-rw-r-- 1 bitnami daemon 8501 Apr 17 04:53 wp-mail.php
-rw-rw-r-- 1 bitnami daemon 2496 Apr 17 04:53 wp-links-opml.php
-rw-rw-r-- 1 bitnami daemon 3940 Apr 17 04:53 wp-cron.php
-rw-rw-r-- 1 daemon daemon 3931 Apr 17 04:53 wp-config-sample.php
-rw-rw-r-- 1 bitnami daemon 2275 Apr 17 04:53 wp-comments-post.php
-rw-rw-r-- 1 bitnami daemon 351 Apr 17 04:53 wp-blog-header.php
-rw-rw-r-- 1 bitnami daemon 6912 Apr 17 04:53 wp-activate.php
-rw-rw-r-- 1 bitnami daemon 10089 Apr 17 04:53 readme.html
-rw-rw-r-- 1 bitnami daemon 19915 Apr 17 04:53 license.txt
-rw-rw-r-- 1 bitnami daemon 4755 Apr 17 04:53 wp-trackback.php
-rw-rw-r-- 1 bitnami daemon 19396 Apr 17 04:53 wp-settings.php
-rw-rw-r-- 1 bitnami daemon 47874 Apr 17 04:53 wp-login.php
drwxrwxr-x 21 bitnami daemon 12288 Apr 17 04:53 wp-includes
drwxrwxr-x 8 bitnami daemon 4096 Apr 17 05:20 wp-content
-rw-rw-r-- 1 bitnami bitnami 110775 Apr 18 11:53 Search-Replace-DB-4.1.0.zip
$ unzip Search-Replace-DB-4.1.0.zip
Archive: Search-Replace-DB-4.1.0.zip
f923b32c2b7d41b9b9f0be78d0ccaaf4524e96fa
creating: Search-Replace-DB-4.1.0/
inflating: Search-Replace-DB-4.1.0/.editorconfig
extracting: Search-Replace-DB-4.1.0/.gitignore
extracting: Search-Replace-DB-4.1.0/.htaccess
inflating: Search-Replace-DB-4.1.0/.travis.yml
inflating: Search-Replace-DB-4.1.0/CHANGELOG.md
inflating: Search-Replace-DB-4.1.0/LICENSE.txt
inflating: Search-Replace-DB-4.1.0/README.md
inflating: Search-Replace-DB-4.1.0/composer.json
inflating: Search-Replace-DB-4.1.0/composer.lock
inflating: Search-Replace-DB-4.1.0/index.php
inflating: Search-Replace-DB-4.1.0/package.json
inflating: Search-Replace-DB-4.1.0/phpunit.xml
inflating: Search-Replace-DB-4.1.0/srdb.class.php
inflating: Search-Replace-DB-4.1.0/srdb.cli.php
creating: Search-Replace-DB-4.1.0/tests/
inflating: Search-Replace-DB-4.1.0/tests/DataSet.xml
inflating: Search-Replace-DB-4.1.0/tests/DataSetGenerator.php
inflating: Search-Replace-DB-4.1.0/tests/SrdbTest.php
Search Replace DB を実行
ブラウザから Search Replace DB の実行ページを開きます。URLは「http://xxx/Search-Replace-DB-4.1.0/」のようになります。

置換したい文字列とその他情報を入力し、まずは「Do a safe test run」を実行します。まだ実際には置換は行われません。以下のように実行結果が表示されます。場合によっては置換できないデータがありエラーが表示されることもあります。
内容を了解したら、「Search and Replace」で実際に置換を行います。

最後に「delete me」ボタンあるいはサーバ上でコマンドラインから本ツールを削除します。