Mysql – Search and Replace in multiple MySQL databases

centoslinuxMySQLreplace

I have multiple MySQL databases(50+) and I want to replace a string in all of them, is there anyway to search and replace in all the databases?

Server is CentOS and I have SSH root access.

Best Answer

Not really.

Instead, you could do something like

SELECT CONCAT("UPDATE ", table_schema, ".", table_name, 
                " SET foo = replace(foo, 'this', 'that');")
    FROM information_schema.tables
    WHERE ...

to generate the desired 50+ UPDATE statements. Then copy and paste them into the mysql commandline tool.

(Or you could construct a shell script using that. Or...)