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

标签 php mysql drupal drupal-7

我在同一域上有 2 个站点(example.com、site2.example.com),我试图使它们都从主站点(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 时,我收到以下错误消息:

Uncaught exception thrown in shutdown function.

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in >your SQL syntax; check the manual that corresponds to your MySQL server version for the >right syntax to use near '-amalga-01.semaphore WHERE (value = >'1471293032527ac89955a330.73110726')' at line 1: DELETE FROM {semaphore} >WHERE (value = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] => >1471293032527ac89955a330.73110726 ) in lock_release_all() (line 269 of >/home/sites/amalgamart.co.uk/public_html/exampletown/includes/lock.inc).

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

谢谢!

最佳答案

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

关于php - Drupal 7 - MySQL 语法错误 - 修改 settings.php 后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824835/

相关文章:

php - 代码点火器+哎呀

php - 从 Lighttpd 响应中删除 Content-Type header

php - 我想创建一个表,但它给我错误 1046

mysql - 什么时候同时使用外键作为主键?

php - 如何使用 Drupal 发布驻留在外部数据库中的数据?

drupal - Ubercart:如何清空购物车?

drupal - 我可以在 Drupal 中复制我的节点吗? (稍后稍微改变它们)

javascript - 无法找到适用于 Highcharts 的正确 JSON 数组语法

php - MySQL:SUBTIME()没有负值?

MySQL 在同一个表上相交