모든 데이터베이스에서 SQL 쿼리 실행


11

cPanel과 phpmyadmin을 사용하는 호스팅 계정이 하나 있습니다.

이 계정에는 모든 WordPress에 50 개의 데이터베이스가 있습니다.

암호를 업데이트하기 위해 모든 데이터베이스를 실행하도록이 쿼리를 수정해야합니다.

업데이트 'wp_users'SET 'user_pass'= MD5 ( 'somepassword') 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

내 호스트는 셸 액세스 권한을 부여하는 데 이상하며 이러한 사용자 지정 명령을 수행하는 데 비용이 청구됩니다. 이미 각 데이터베이스를 살펴보고 수동으로 업데이트하기 시작했습니다. 나를 도와 주셔서 감사합니다 :)
Billy

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의 Common Schema 를 설치 하고 다음 QueryScript를 실행하십시오.

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

2
나는 이것의 첫 번째 부분에 동의하고 schema_name을 포함하는 SQL 쿼리를 작성하고 실행하십시오. 열에 넣을 수있는 모든 50 개의 db 이름이 있다고 가정하면 Excel에서 빌드 할 수도 있습니다.
Dave Rix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.