You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启WordPress多站点后提示Error establishing a database connection如何解决

WordPress开启多站点后数据库连接错误排查方案
  • 核查wp-config.php中的多站点配置顺序
    多站点相关配置必须放在/* That's all, stop editing! Happy publishing. */这句话的上方,且配置项要完整,不能只加define( 'WP_ALLOW_MULTISITE', true );就结束,正确的完整基础配置结构如下:
    define( 'WP_ALLOW_MULTISITE', true );
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false); // 子目录模式设为false,子域名模式设为true
    define('DOMAIN_CURRENT_SITE', '你的站点域名,不带http/https前缀');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
    
    注意所有配置项的引号、逗号不能漏,数据库连接配置(DB_NAME、DB_USER、DB_PASSWORD、DB_HOST四个参数)要放在多站点配置的上方,顺序错误也会触发连接报错。
  • 验证数据库用户权限
    开启多站点后WordPress会自动创建wp_blogs、wp_site等多张新表,如果你原来的数据库用户只有查询、写入权限,没有建表权限,就会触发连接错误。你可以登录数据库管理面板(比如phpMyAdmin),确认对应的数据库用户拥有当前数据库的全部权限,也可以直接用root权限的数据库用户测试连接是否正常。
  • 核查.htaccess规则是否匹配
    多站点模式需要重写规则配合,如果你配置完多站点后没有替换根目录的.htaccess内容,也会间接触发数据库连接报错。子目录模式的默认.htaccess规则如下:
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    
    替换前记得备份原有的.htaccess文件。
  • 测试单站点模式是否正常
    先注释掉wp-config.php里所有多站点相关的配置,保存后刷新站点,如果还是报数据库连接错误,说明是基础的数据库配置问题,和多站点无关,重新核对DB_NAME、DB_USER、DB_PASSWORD、DB_HOST四个参数是否正确即可;如果单站点模式可以正常访问,说明是多站点配置缺失或者错误导致的问题,回到第一步重新核对配置项即可。

内容的提问来源于stack exchange,提问作者Mustafa Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:54:04