我在同一个域(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行)。
如果有人能够帮助我,我将永远感激不尽!
谢谢!
答案 0 :(得分:0)
Drupal的db配置的“前缀”部分是指在单个数据库中预先添加到表名的字符串,而您尝试使用两个不同的数据库。我不认为这在Drupal中是可行的。请阅读this,或者您可以尝试查看Domain Access module是否适合您的需求。