我有一个使用 cPanel 和 phpmyadmin 的主机帐户。
我在这个账户下有 50 个数据库,都是 WordPress。
我需要修改此查询,以便它运行所有数据库以更新密码。
更新 'wp_users' SET 'user_pass' = MD5('somepassword') WHERE 'user_login'='admin' LIMIT 1;
希望有一个可以针对所有数据库的解决方案,而不必一个一个地通过它们。
谢谢
Abd*_*naf 11
我对 cPanel 和 phpmyadmin 无话可说,但总的来说,我可以通过编写一个简单的脚本来做到这一点。
我为你写了一个shell脚本
#!/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
Run Code Online (Sandbox Code Playgroud)
尝试运行它,然后将输出剪切 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');
Run Code Online (Sandbox Code Playgroud)
或者,如果您能够在此服务器上安装代码,请安装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");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20085 次 |
最近记录: |