MySQL:データベース上の全てのテーブルを検索して文字列置換をしてくれる便利なWebツール「Search-Replace-DB-master」

WordPressを別の環境(別のURL)に移行したい場合、デーベース内の色々なテーブルに登録されている移行元URLを移行先URLに変更する必要があります。

単純にMySQLのバックアップをとってSQLファイルを文字列検索して置換すれば良いのですが、「Search-Replace-DB-master」を使えばデータベース内のテーブルを横断的に検索して文字列置換ができます。

WordPressの移行時に限らず、データベース内の色々なテーブルに登録されている特定の文字列を置換した時には非常に便利なツールなので使い方など覚書しておきます。

スポンサーリンク

「Search-Replace-DB-master」を使用するために必要な準備作業について

以下に「Search-Replace-DB-master」を使用する前に必要な準備作業を記載します。

まず最初に「Search-Replace-DB-master」をダウンロードします。

公式サイト

Database Search and Replace Script in PHP | inter.connect
Search Replace DB is a powerful tool for developers, allowing them to run a search replace against their database where ...

ダウンロードする際に「このツールを使って何か起きても自己責任ですよ」ということに同意するためのチェックボックス3つと氏名、E-mailアドレスを入力する必要があります。

必要事項を入力して[SUBMIT]ボタンをクリックすると、入力したメールアドレス宛にダウンロードページのURLが送られてきますのでそれを元にダウンロードします。

こんな感じのメールが来ます。


件名:Dear 名前 - here's your Search Replace DB download Link

このメールの中にこんな感じ(赤文字のhere)にダウンロードリンクが記載されています。

Dear 名前, Thank you for completing the form to receive your Search Replace DB download link.

・・省略・・

Search Replace DB v 3.1.0 is available from here. Use it carefully! If you have compatibility problems or are running on an older server for whatever reason, then please use v 2.1.0


名前とE-mailアドレスを入力しますが、ユーザー登録という意味合いではなく単に「なにかあっても私たちに責任求めないことに同意した」というエビデンスが欲しいだけのようです。

以前はこんな感じで直接ダウンロードできたのですが今はダメのようです。

「Search-Replace-DB-master」をダウンロード

設定方法

ダウンロードされたSearch-Replace-DB-master.zipを解凍し、回答されたフォルダSearch-Replace-DB-masterをWWWサーバーのドキュメントルート(DocumentRoot)フォルダ配下にコピーします。

※例えばapacheをWWWサーバーとして使用しているのであれば、htdocsフォルダになります。

Search-Replace-DB-masterをWWWサーバーのドキュメントルート(DocumentRoot)フォルダ配下にコピー

ブラウザからSearch-Replace-DB-masterのURLにアクセスします。

※例えばWWWサーバーがローカルなのであれば、URLは、http://localhost/Search-Replace-DB-masterになります。

「Search-Replace-DB-master」の使い方について

以下に「Search-Replace-DB-master」の使い方を記載します。

説明の前提となる環境について

ここで設定する値等については以下の環境を前提としていますので実際に使用する際は各自の環境に合わせて任意に指定してください。

設定項目 設定値
MySQLデータベース名 test
MySQLログインユーザー名 root
MySQLログインパスワード password
MySQLホスト名 127.0.0.1(localhost)
MySQL使用ポート番号 3386
置換対象文字列 http://www.test.net
置換後の文字列 http://localhost/test.net

「Search-Replace-DB-master」使用手順

「Search-Replace-DB-master」の使用手順は以下のとおりです。

「search/replace」の[replace]ボックスに文字列置換したい元の文字列(検索文字)を入力します。

「search/replace」の[with]ボックスに文字列置換後(変換文字列)の文字列を入力します。

「datebase」の[name]ボックスに対象のデータベース名、[user]にMySQLのログインユーザー名、[pass]にMySQLのログインパスワード、[host]にMySQLのホスト名(localhostであれば127.0.0.1のままで良い)、[port]にはMySQLの使用ポート番号を入力します。

指定したデータベースの全てのテーブルを文字列置換の対象にする場合は、「tables」の[all tables]をオンにします。

必要な情報を全て入力した際の画面は以下のとおりです。

必要な情報を全て入力した際の画面

上記の情報を入力後、「actions]の[update details]ボタンをクリックします。 ※この時点ではまだ文字列置換処理は実行されません

「actions]の[update details]ボタンをクリック

情報が正しく入力されていれば「actions」の全てのボタンの色がグレーから赤に変わります。

「actions」の全てのボタンの色がグレーから赤に変わる

「actions」の[live run]ボタンをクリックします。

「actions」の[live run]ボタンをクリック

置換処理の実行を確認するWebダイアログボックスが表示されるので[OK]ボタンをクリックします。

置換処理の実行を確認するWebダイアログボックスが表示されるので[OK]ボタンをクリック

※[live run]をクリックしてもすぐには置換処理は開始されません。

カウントダウン(5秒)が開始されるので、カウントが0になる前に[stop]ボタンをクリックすれば文字列置換処理の開始がキャンセルされます。

カウントが0になる前に[stop]ボタンをクリックすれば文字列置換処理の開始がキャンセルされる

以上で「Search-Replace-DB-master」使い方の簡単な説明は終了です。

処理が終了すると、以下の様な処理結果が表示されます。

カウントが0になる前に[stop]ボタンをクリックすれば文字列置換処理の開始がキャンセルされる

補足:[delete me]ボタンについて

画面最下部にある[delete me]ボタンは、他のユーザーなどがこのツールを使用できないように「Search-Replace-DB-master」を削除するためのボタンです。

画面最下部にある[delete me]ボタン

「Search-Replace-DB-master」の性質上、公のサーバーに残しておくのは安全上好ましくないということからこのようなボタンが付いているようです。

「Search-Replace-DB-master」をローカル環境のみでちょいちょい使うというのであればこのまま残しておいても問題ないと思います。

そもそもMySQLのログインユーザー名、パスワードが分からなければ使用できませんし。

「Search-Replace-DB-master」まとめ

「Search-Replace-DB-master」を使用したきっかけは、運営しているWordPressのサイトの複製をローカル環境に作りたかったためです。

インターネット上の本番サイトとローカルのサイトでは当然URLが異なるため、本番のデータをローカルにリストアする際にはデータベースの色々なテーブルに登録されているURLをローカルのURLに文字列置換する必要があります。

SQL文を直接エディタで文字列置換すればいいだけの話なのですが、専用のツールがあるならそれを使ったほうがより安全かなと思って使ってみました。

WordPressサイトの移行以外にも仕事でちょくちょくこの手の文字列置換作業があったりもするので。

以上、MySQLのデータベースのテーブルを横断的に検索して文字列置換をしてくれる便利なツール「Search-Replace-DB-master」の紹介でした。

コメント

タイトルとURLをコピーしました