Drupal 7 - MySQL语法错误 - 修改settings.php后

时间:2013-11-06 23:11:58

标签: php mysql drupal drupal-7

我在同一个域(example.com,site2.example.com)上有2个站点,我试图让它们从主站点(example.com)引用相同的用户表等,以便拥有单个站点通过两者签署。

我设置了2个数据库 - 每个数据库一个 - 并设置了一个用户,可以使用所有必需的权限访问这两个数据库。我已在第二个网站中更改了我的settings.php,如下所示(以及众多变体):

 $databases['default']['default'] = array(
    'driver' => 'mysql',
    'database' => 'database_site2',
    'username' => 'multi_username',
    'password' => 'multi_password',
    'host' => 'localhost',
    'prefix' => array(
      'default'   => 'database_site2.',
      'users'     => 'database_main_site.',
      'sessions'  => 'database_main_site.',
      'role'      => 'database_main_site.',
      'authmap'   => 'database_main_site.',
    ),
  );

不幸的是,在进行此更改后尝试访问site2时,我收到以下错误消息:

  

在关机功能中抛出未捕获的异常。

     

PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064>您的SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,使用>正确的语法,在'-amalga-01.semaphore WHERE(value =>'1471293032527ac89955a330.73110726')'第1行附近使用:DELETE FROM {semaphore}> WHERE(value =:db_condition_placeholder_0); lock_release_all()中的数组([:db_condition_placeholder_0] =>> 1471293032527ac89955a330.73110726)(&home /sites/amalgamart.co.uk/public_html/exampletown/includes/lock.inc的第269行)。

如果有人能够帮助我,我将永远感激不尽!

谢谢!

1 个答案:

答案 0 :(得分:0)

Drupal的db配置的“前缀”部分是指在单个数据库中预先添加到表名的字符串,而您尝试使用两个不同的数据库。我不认为这在Drupal中是可行的。请阅读this,或者您可以尝试查看Domain Access module是否适合您的需求。