[英]I have root access to all my mysql databases. how can i export/import all the databases at once?
[英]How can I run an sql command on all databases at once?
我有大約80個wordpress博客,寫了我的各種網站。 我想更新所有數據庫中的所有帖子,以獲取特定的文本字符串,在本例中為域名。
該腳本在一個數據庫上運行得非常好,但是我需要對所有數據庫進行一些更改,這些更改只需要很長時間。
我需要能夠一次跨每個數據庫運行這些命令,而不是一次只運行一個數據庫。
我的腳本,因為它當前在單個數據庫上工作:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.old-domain.com', 'http://mixudo.com');
非常感謝
嘗試執行此查詢:
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');
然后重新執行結果。
資料來源: https : //dba.stackexchange.com/a/20251
這是安全完成任務的唯一方法。
您可以使用SHOW DATABASES命令獲取mysql服務器上的數據庫列表。 使用它作為輸入,你可以用你能夠通過數據庫列表foreach()的任何語言編寫一個shell腳本,並通過執行每個數據庫運行UPDATE語句
use DBNAME;
其中DBNAME是foreach中的變量。 update語句應該對所有數據庫都一樣,因為我假設每個db都有相同的表集,每個表中都有相同的表名。
對於Ed Heal而言,這也假設您正在使用服務器的root / admin用戶,以便它有權更新所有表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.