CPanelとphpmyadminを使用する1つのホスティングアカウントを持っています。
私はこのアカウントで50個のデータベースを所有しています。すべてWordPressです。
このクエリを変更して、すべてのデータベースを実行してパスワードを更新する必要があります。
UPDATE 'wp_users' SET 'user_pass' = MD5( 'somepassword')WHERE 'user_login' = 'admin' LIMIT 1;
データベースを1つずつ経由する必要がなく、すべてのデータベースをターゲットにできるソリューションを期待しています。
ありがとうございました
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
これを実行してから、出力を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");