Esecuzione di query SQL su tutti i database


11

Ho un account di hosting usando cPanel e phpmyadmin.

Ho 50 database con questo account, tutti WordPress.

Ho bisogno di modificare questa query in modo che scorra tutti i database per aggiornare la password.

AGGIORNAMENTO 'wp_users' SET 'user_pass' = MD5 ('somepassword') WHERE 'user_login' = 'admin' LIMIT 1;

Sperando in una soluzione in grado di indirizzare tutti i database invece di doverli esaminare uno per uno.

Grazie

Risposte:


11

Non posso dire nulla su cPanel e phpmyadmin ma in generale posso farlo scrivendo una semplice sceneggiatura.

Ho scritto uno script di shell per te

#!/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

Il mio host è strano nel concedere l'accesso alla shell e fanno pagare per eseguire comandi personalizzati come questo. Ho già iniziato a esaminare ciascuno dei database e aggiornarli manualmente. Grazie per avermi aiutato :)
Billy,

8

Prova a eseguirlo e poi taglia n incolla nuovamente l'output in 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');

oppure, se si è in grado di installare codice su questo server, installare Common Schema di Shlomi Noach ed eseguire il seguente QueryScript

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

2
Sono d'accordo con la prima parte di questo, costruisco una query SQL contenente lo schema_name e lo eseguo. Potresti persino costruirlo in Excel se necessario - presumendo che tu abbia tutti i 50 nomi db che potresti mettere in una colonna ...
Dave Rix,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.