質問: **phpMyAsdminで、データベースにある文字列を一括置換する方法はありますか?** **データベース** ・MySQL **対象テーブル** ・全テーブル **対象カラム** ・全カラム **置換内容** ・「teratail.com」を「hoge.net」へ置換 **質問** ・dumpデータ置換以外に、phpMyAsdminで置換する方法はないでしょうか? --- **追加の質問** ・dumpデータを置換するにはどうすれば良いでしょうか? ・大きなファイルなので開かずに置換したいです ・dumpデータをsedで置換しても良いのでしょうか? **-hlocalhost** ・リストアで検索すると、-hlocalhostがあるSQLとないSQLがあるのですが、このオプションはどういう意味ですか? ・なくても大丈夫?
回答: 残念ながら、一括置き換えの方法はありません。 phpMyAdmin で、置換するには、テーブルとカラム名を指定して、SQLで、 ``` update テーブル名 set カラム名 = replase( カラム名, '置換前文字列', '置換後文字列'); ``` を実行するしかないです。 データベースを止めることができるなら、一度、エクスポートしてから、 sed や perl, ruby 等のスクリプト言語で、一括置換をして、インポートし直すことが多いです。 何れにしても、バックアップを取ってから、実行する方がいいでしょう。 -hlocalhost の有無ですが、マニュアル ( https://dev.mysql.com/doc/refman/5.6/ja/mysql-command-options.html ) に > > --host=host_name, -h host_name > > 指定されたホストの MySQL サーバーに接続します。 > > > と書かれている通り、指定のホストに TCP 接続します。 -h の指定がない場合は、unix ソケットで、接続します。