On Nov 4, 2010, at 9:41 AM, Rob Marscher <rmarsc...@beaffinitive.com> wrote:

>> On 11/4/2010 08:32, p...@blu-studio.com wrote:
>> > I am wondering if anyone has had to search an entire database and do a
>> > search and replace on a string. That is to search in every table, in
>> > every row, in every field.
>> export the entire database into a file
>> use PHP (or a good editor) to make the replacement line by line
>> drop the database
>> re-create it by importing the modified file
> I've had to do something similar.  Yes, use mysqldump.  Then use sed (if 
> you're on a *nix machine).  Sed does search and replace by streaming the file 
> rather than buffering the whole thing so it won't run out of memory no matter 
> how big your dump is.  You can send the output to a new file.  Definitely 
> test out importing it back in on a non-production machine.

This is a sane method. But you probably want to either:
1. Run on a schema-only dump and make sure it doesn't touch any columns or 
table DDL before you run it on a data dump
2. Make sure your search pattern matches things within a SQL quoted string.

Dan's solution of looping over tables and columns works well too. Mysql has  
regex funcs you can use if necessary.

HTH.

Regards,
Andrew
_______________________________________________
New York PHP Users Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

http://www.nyphp.org/Show-Participation

Reply via email to