我有大约80个wordpress博客,上面写着我的各种网站。我想要更新所有数据库中特定文本字符串的所有帖子,在这种情况下,是一个域名。
脚本在一个数据库上运行得很好,但我需要对所有数据库进行几次更改,这将花费太长的时间。
我需要能够一次在每个数据库中运行这些命令,而不是一次运行一个数据库。
我的脚本,因为它当前在单个数据库上工作:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.old-domain.com', 'http://mixudo.com');非常感谢
发布于 2016-12-16 21:13:44
尝试执行此查询:
SELECT CONCAT('UPDATE ',
schema_name, '.\'wp_posts\' SET \'post_content\' = REPLACE(post_content, \'http://www.old-domain.com\', \'http://mixudo.com\');')
FROM information_schema.schemata
WHERE schema_name NOT IN ('information_schema','mysql','performance_schema','phpmyadmin', 'webauth');然后重新执行结果。
发布于 2012-12-07 05:03:08
<代码>G29
这是安全完成任务的唯一方法。
发布于 2012-12-07 05:04:02
您可以使用SHOW databases命令获取mysql服务器上的数据库列表。使用该脚本作为输入,您可以用您能够使用的任何语言编写shell脚本,该脚本将在数据库列表中遍历foreach(),并在每个数据库上运行UPDATE语句,方法是执行
use DBNAME;其中,DBNAME是foreach中的变量。update语句在所有数据库上的工作方式应该是相同的,因为我假设每个数据库都有相同的表集,每个表名都相同。
根据Ed Heal的观点,这还假设您使用的是服务器的root/admin用户,这样它就有权更新所有的表。
https://stackoverflow.com/questions/13752441
复制相似问题