Запуск SQL-запиту на всіх базах даних


11

У мене є один обліковий запис хостингу з використанням cPanel та phpmyadmin.

У мене є 50 баз даних під цим обліковим записом, всі WordPress.

Мені потрібен цей запит змінений, щоб він проходив через усі бази даних для оновлення пароля.

ОНОВЛЕННЯ 'wp_users' SET 'user_pass' = MD5 ('деякий пароль') WHERE 'user_login' = 'admin' LIMIT 1;

Сподіваючись на рішення, яке може націлити всі бази даних, а не проходити через них по черзі.

Дякую

Відповіді:


11

Я нічого не можу сказати про cPanel та phpmyadmin, але в цілому я можу це зробити, написавши простий сценарій.

Я написав сценарій оболонки для вас

#!/bin/bash

# mysql credential 
user="root"
pass="root"

# list of all databases
all_dbs="$(mysql -u $user -p$pass -Bse 'show databases')"        

for db in $all_dbs
     do
        if test $db != "information_schema" 
            then if test $db != "mysql" 
            then mysql -u$user -p$pass $db -sN -e "UPDATE wp_users SET user_pass = MD5('somepassword') WHERE user_login ='admin' LIMIT 1;"
        fi
    fi  
     done

Мій хост дивно отримує доступ до оболонки, і вони беруть участь у виконанні таких команд, як ця. Я вже почав переглядати кожну з баз даних та оновлювати їх вручну. Дякую, що допомогли мені :)
Біллі

8

Спробуйте запустити це, а потім виріжте n вставити результат назад у phpMyAdmin

SELECT CONCAT('UPDATE `',     
    schema_name, '`.\'wp_users\' SET \'user_pass\' = MD5(\'somepassword\') WHERE \'user_login\' =\'admin\' LIMIT 1;')
FROM information_schema.schemata
WHERE schema_name NOT IN ('information_schema','mysql','performance_schema','test');

або, якщо ви можете встановити код на цьому сервері, встановіть загальну схему від Shlomi Noach та виконайте наступний QueryScript

call common_schema.foreach( 'schema', "UPDATE `${schema}`.`wp_users` SET 'user_pass' = MD5('somepassword') WHERE 'user_login' ='admin' LIMIT 1");

2
Я погоджуюся з першою частиною цього, будую SQL-запит, що містить schema_name, і просто запускаю це. Ви навіть можете побудувати його в Excel, якщо вам потрібно - припускаючи, що у вас є всі 50 дБ імен, які ви можете вкласти в колонку ...
Дейв Рікс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.