0

同じドメイン (example.com、site2.example.com) に 2 つのサイトがあり、両方がメイン サイト (example.com) から同じユーザー テーブルなどを参照するようにしようとしています。両方。

2 つの DB を設定し (それぞれに 1 つずつ)、必要なすべての権限で両方にアクセスできるユーザーを設定しました。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 サーバーのバージョンに対応するマニュアルを確認してください。near '-amalga-01.semaphore WHERE (value = >'1471293032527ac89955a330.73110726')' at line 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 行目)。

誰かがこれで私を助けることができれば、私は永遠に感謝します!

ありがとう!

4

1 に答える 1

0

Drupal の db 構成の「プレフィックス」部分は、2 つの異なるデータベースを使用しようとしているのに対し、単一のデータベース内のテーブル名の前に追加される文字列を参照します。これは Drupal では不可能だと思います。こちらをお読みいただくか、 Domain Access モジュールがニーズに適しているかどうかをお試しください。

于 2013-11-07T17:46:16.910 に答える