सभी डेटाबेस पर SQL क्वेरी चलाना


11

मेरे पास cPanel और phpmyadmin का उपयोग करके एक होस्टिंग खाता है।

मेरे पास इस खाते के तहत 50 डेटाबेस हैं, सभी वर्डप्रेस।

मुझे इस क्वेरी को संशोधित करने की आवश्यकता है ताकि यह पासवर्ड को अपडेट करने के लिए सभी डेटाबेस के माध्यम से चले।

UPDATE 'wp_users' SET 'user_pass' = MD5 ('somepassword') जहां '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');

या, यदि आप इस सर्वर पर कोड स्थापित करने में सक्षम हैं, तो श्लोमी नोआच द्वारा सामान्य स्कीमा स्थापित करें और निम्नलिखित क्वेरीस्क्रिप्ट निष्पादित करें

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

2
मैं इसके पहले भाग से सहमत हूँ, स्कीमा_नाम युक्त SQL क्वेरी बनाएँ, और बस इसे चलाएं। आप इसे एक्सेल में भी बना सकते हैं यदि आपको आवश्यकता हो - मान लें कि आपके पास सभी 50 डीबी नाम हैं जो आप एक कॉलम में डाल सकते हैं ...
डेव रिक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.