如何批量修改多个WordPress站点wp-config.php中的数据库密码
批量替换多站点WordPress配置文件数据库密码操作步骤
1. 全量备份所有配置文件(必做)
先批量备份所有站点的wp-config.php文件,避免操作失误导致配置损坏:
# 创建备份目录 mkdir -p /home/user/wp_config_backup/ # 复制所有配置文件到备份目录,保留原有目录结构方便恢复 find /home/user/domains/ -path "*/public_html/wp-config.php" -name "wp-config.php" -exec cp --parents {} /home/user/wp_config_backup/ \;
2. 预校验匹配规则
执行以下命令预览匹配结果,确认你要替换的旧密码规则可以正确命中所有目标文件,避免误改:
# 把<旧数据库密码>替换为你实际使用的旧密码值 find /home/user/domains/ -path "*/public_html/wp-config.php" -name "wp-config.php" -exec grep "define( 'DB_PASSWORD', '<旧数据库密码>' );" {} \;
确认输出的所有行都是对应配置文件的数据库密码定义内容后,再执行替换操作。
3. 执行批量替换
# 把<旧数据库密码>替换为实际旧密码,<新数据库密码>替换为新服务器的数据库密码 find /home/user/domains/ -path "*/public_html/wp-config.php" -name "wp-config.php" -exec sed -i "s/define( 'DB_PASSWORD', '<旧数据库密码>' );/define( 'DB_PASSWORD', '<新数据库密码>' );/g" {} \;
注意:如果你的密码包含/、&等sed默认分隔符冲突的特殊字符,可以把sed命令的分隔符替换为#,修改后命令格式为:sed -i "s#define( 'DB_PASSWORD', '<旧数据库密码>' );#define( 'DB_PASSWORD', '<新数据库密码>' );#g"
4. 验证修改结果
执行以下命令确认所有配置文件的密码已更新为新值:
find /home/user/domains/ -path "*/public_html/wp-config.php" -name "wp-config.php" -exec grep "DB_PASSWORD" {} \;
也可以随机访问几个站点,确认数据库连接正常无报错。
注意事项
- 操作前必须完成备份,如替换后出现异常,可直接从备份目录恢复对应配置文件
- 如站点配置了对象缓存(Redis、Memcached等),替换完成后建议清空缓存,避免旧连接信息残留导致站点连接数据库失败
内容的提问来源于stack exchange,提问作者riba86
相关产品推荐
相关产品推荐

