Wordpress Multisite“在localhost中建立数据库连接时出错”

时间:2013-11-01 10:18:22

标签: wordpress

尝试将WordPress转换为多站点设置时,出现错误:

  

建立数据库连接时出错

我在Windows 7上使用带有WAMP服务器的WordPress 3.7.1。

WP-config.php中

define('WP_ALLOW_MULTISITE', true ); 
define('SUBDOMAIN_INSTALL', false); 
define('DOMAIN_CURRENT_SITE', 'localhost');
define('PATH_CURRENT_SITE', '/wordpress_test4/');
define('SITE_ID_CURRENT_SITE', 1); 
define('BLOG_ID_CURRENT_SITE', 1);

的.htaccess

RewriteEngine On 
RewriteBase /wordpress_test4/ 
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]

12 个答案:

答案 0 :(得分:43)

您需要添加到wp-config.php

define('MULTISITE', true);

我遇到了同样的问题。我跳过了这一行,因为我的wp-config中已经有define('WP_ALLOW_MULTISITE', true);,它看起来也一样。

答案 1 :(得分:24)

有同样的问题,找到了3个可能的解决方案:

  1. 请确保:wp-config.php中的DB_NAME,DB_USER,DB_PASSWORD和DB_HOST确实是预期的。

  2. 正如Dima L.之前提到的, define('MULTISITE',true); 也是预期的。

  3. 为我解决的问题)为wordpress设置多站点,将'wp_blogs'表的列'路径'更改为我网站的未定义位置。我将其更改为“/”并重新建立了数据库连接。

答案 2 :(得分:11)

由于这个问题,我挣扎了很长时间。最后找到了解决方案。

您不应该在wp-config.php文件中一次添加所有这些设置。按照此处描述的确切步骤操作:http://codex.wordpress.org/Create_A_Network

仅添加以下代码作为第一步:

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );

然后刷新您的页面。 之后,在您的管理面板中转到工具 - >网络设置并选择您的子站点设置。

其他方面,请使用上面链接中的说明。

祝你好运!

答案 3 :(得分:4)

我最近遇到了一次奇怪的遭遇。设置一个在不同域下运行并将多站点设置移动到它的开发服务器后,我得到了同样的错误“建立数据库连接时出错”。我检查过所有wp_options表在相应的设置中都有正确的域,并且我的数据库连接具有正确的凭据,并且可以在正常的范围内工作。

我找到了一种更好的错误报告方法。我在functions.php中的函数dead_db()中添加了数据库对象的输出,然后向我显示它在表wp_blogs中找不到我的站点的任何博客。我只是忘了在此表中更新测试服务器的域。

function dead_db() {
  global $wpdb;

  echo "<pre>";
  print_r($wpdb);
  echo "</pre>";

  wp_load_translations_early();

希望能帮助某人:)

答案 4 :(得分:2)

wp-config.php中的 DOMAIN_CURRENT_SITE define('DOMAIN_CURRENT_SITE','www.example.com');

在wp_blogs中删除“ http:// ” - &gt;域名修复了我的问题。

答案 5 :(得分:1)

除了以上所述之外,如果使用多站点环境,请检查以下内容: 在各个子目录(/ home / subsitename)中,每个(子)站点都有单独的wp-config.php和.htaccess文件,因此必须在所有这些文件中调整上述参数。 例如,我的主站点工作正常,因为我的/ home目录中的这些文件都没问题,但是当我试图访问我的子站点时,我一直在收到数据库连接错误消息,直到我调整这些文件为止。

答案 6 :(得分:1)

我在中添加了 $ base ='/'; ,解决了问题。

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'mydomain.com');
$base = '/';
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

答案 7 :(得分:1)

将多站点从子目录移动到根目录后,我遇到了问题。 Wat为我解决了部分原因是Sabin Chirila所提到的: 1.确保:wp-config.php中的DB_NAME,DB_USER,DB_PASSWORD和DB_HOST实际上是预期的。 2.正如Dima L.之前提到的,定义(&#39; MULTISITE&#39;,true);也是预料之中的。 3.更改&#39; wp_blogs&#39;表的专栏&#39;路径&#39;到&#34; /&#34;并且重新建立了数据库连接。

但我不得不改变一些事情。

  1. 为了能够查看前端,我还必须更改&#39; wp_site'表格的列“路径”&#39;到&#34; /&#34;
  2. 然后(在主题二十七岁的孩子中)我不得不重新配置后端的一些配置设置,因为它们没有被考虑在内。但这很简单,因为数据仍然存在。

答案 8 :(得分:1)

如果您正在运行WHM / cPanel并且您已经检查过您已添加MULTISITE / WP_ALLOW_MULTISITE常量,那么您可能会遇到虚拟主机问题。

如果您收到数据库错误,可能是您的名称服务器或A记录是正确的。否则,您的域名将无法通过数据库连接指向您的服务器。但是,您可能已经忘记或错过了 cPanel别名中的域名。

只需前往cPanel,搜索&#39;别名&#39;并在&#39;创建新别名&#39;下输入您遗失的域名。

您还可以登录WHM,搜索“列出帐户”,搜索所需帐户并点击CP图标,即可访问cPanel。

答案 9 :(得分:0)

这是我如何解决它

配置设置

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/myblog/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

然后在数据库表中(使用phpmyadmin找到)wp_blogs将根博客的值(应该是谎言/数字1)设置为

domain localhost
root /myblog/

最后 - 重置选项表中的sitrurl和主页(再次使用phpmyadmin找到)

 http://localhost/myblog/

答案 10 :(得分:0)

受Sabin的回答启发,我检查wp_blogs并发现domain值仍然指向错误的域(我正在将多站点移动到开发服务器)。运行UPDATE wp_blogs SET domain='example.com';解决了我的问题(请注意我使用的是子文件夹多站点,而不是子域名 - 不要盲目运行该SQL!)

答案 11 :(得分:0)

如果您对多站点进行了整个数据库转储,则必须更改域名以匹配下表中的 localhost 域:

  1. wp_blogs [更新域字段]
  2. wp_options [siteurl 和 home]
  3. wp_site [域字段]

对于多站点,在 config.php 上定义 WP_HOME 和 WP_SITEURL 将不起作用。

理想情况下,在导入数据库转储之前,如果您有 .sql 文件,您可以搜索所有域并将其替换为您自己的本地主机域。

以上步骤对我有用。

相关问题