совместное использование таблиц базы данных между несколькими экземплярами drupal, разными учетными записями пользователей db

У меня установлено несколько экземпляров drupal, и я хотел бы использовать таблицу пользователей и сеансов из одного экземпляра на всех других моих сайтах. Я помещаю правильный префикс в файл settings.php $ db_prefix = array ('default' => 'db1.' , 'sessions' => 'db2.', 'users' => 'db2.',);

Db1 и db2 имеют собственную учетную запись пользователя db. Я также предоставляю учетную запись пользователя и учетные данные в файле settings.php. $ db_url = array ('default' => 'mysql: // user1: password @ localhost / db1', 'users' => 'mysql: // user2: password @ localhost / db2',);

но когда drupal обращается к db2, он не знает, как использовать учетные данные db2 для доступа к таблице пользователей на db2. Я продолжаю использовать значение по умолчанию. Я также попытался использовать имя db и имя сайта db2 вместо «user» в $ db_url, но безуспешно.

Есть ли способ указать drupal использовать другую учетную запись при доступе к db2 в файле настроек. Я знаю, что могу просто назначить user1 на db1 доступ к таблице пользователей на db2 в mysql, но предпочел бы не делать этого, если это можно сделать в settings.php


person joe    schedule 22.02.2011    source источник


Ответы (1)


Тебе нельзя.

Например, есть запросы, которые присоединяются к {node} и {user} следующим образом:

SELECT n.*, u.name FROM {node} n INNER JOIN {user} u ON u.uid = n.nid

Даже использование разных баз данных может быть проблематичным, и на самом деле это не то, что предполагается использовать $ db_prefix.

Итак, у вас есть два варианта:

  • Создайте общего пользователя для обеих баз данных.

  • Если вы не можете этого сделать (например, потому что ваша среда размещения имеет сопоставление 1: 1 между пользователями и базами данных), переместите их в ту же базу данных, но используйте другой префикс. Например, site1_ и site2_.

person Berdir    schedule 22.02.2011