web-dev-qa-db-ja.com

2つ以上のデータベース間でテーブルを共有する方法は?

私はJoomlaを持っています!サイトと今私はいくつかのサブドメインを作りたいです。しかし、両方のユーザーが同じである必要があります。同様に、ユーザーがメインサイトにログオンしてから、同時にサブドメインにアクセスした場合、再度ログインする必要はありません。

これらのテーブルを共有する場合、問題はないことがわかりました。

テーブル#__ user%および#__sessions

質問:

  1. どうすればできますか?
  2. 2つ以上のJoomla間でユーザーを共有できますか?データベース?
3
Murad

http://extensions.joomla.org/extension/mightysites

このコンポーネントの助けを借りて、2つ以上のJoomla!間で「ユーザー」テーブルを共有できます。ウェブサイト。

さまざまな構成の2つのサイト間でコンテンツ、ユーザー、およびその他のdbテーブル共有機能を提供します。

1

はい、1つのJoomlaからユーザーを共有できます!他の複数のJoomlaへのサイト!サイト(同じJ!バージョンを維持する限り)。これがJoomlaでのやり方です! 2.5-3.6(現在のバージョン):

  1. ユーザーが共有される「マスター」サイトを選択します(これは実際にデータを格納するデータベースです)。
  2. $secretマスターサイトの値configuration.phpファイルをすべての「姉妹」サイトの同じファイルに変更します。
  3. マスターサイトのデータベースへのアクセスが、姉妹サイトの各データベースのユーザーに付与されていることを確認します。
  4. 姉妹サイトの各データベースで次のSQLスクリプトを実行します。

    RENAME TABLE `josPrefix2_users` TO `josPrefix2_bak_users`;
    RENAME TABLE `josPrefix2_session` TO `josPrefix2_bak_session`;
    RENAME TABLE `josPrefix2_usergroups` TO `josPrefix2_bak_usergroups`;
    RENAME TABLE `josPrefix2_user_notes` TO `josPrefix2_bak_user_notes`;
    RENAME TABLE `josPrefix2_user_profiles` TO `josPrefix2_bak_user_profiles`;
    RENAME TABLE `josPrefix2_user_usergroup_map` TO `josPrefix2_bak_user_usergroup_map`;
    RENAME TABLE `josPrefix2_viewlevels` TO `josPrefix2_bak_viewlevels`;
    
    CREATE VIEW josPrefix2_users AS SELECT * FROM dbSite1.josPrefix1_users;
    CREATE VIEW josPrefix2_session AS SELECT * FROM dbSite1.josPrefix1_session;
    CREATE VIEW josPrefix2_usergroups AS SELECT * FROM dbSite1.josPrefix1_usergroups;
    CREATE VIEW josPrefix2_user_notes AS SELECT * FROM dbSite1.josPrefix1_user_notes;
    CREATE VIEW josPrefix2_user_profiles AS SELECT * FROM dbSite1.josPrefix1_user_profiles;
    CREATE VIEW josPrefix2_user_usergroup_map AS SELECT * FROM dbSite1.josPrefix1_user_usergroup_map;
    CREATE VIEW josPrefix2_viewlevels AS SELECT * FROM dbSite1.josPrefix1_viewlevels;
    

注1:上記のスクリプトでは、次のことを行う必要があります。

  1. 置換dbSite1は、マスターサイトのデータベースの名前に置き換えます。
  2. 置換josPrefix1は、マスターサイトのデータベーステーブルのプレフィックスに置き換えます。
  3. 置換josPrefix2姉妹サイトのデータベーステーブルのプレフィックスを付けます。

注2:姉妹サイトのいずれかにデータがすでに保存されている場合、データベース内の多くのエントリのユーザーIDを、ユーザーIDが変更されます。例:記事の作成者と変更されたユーザー、LogManアクセスログなど。


参考文献:

http://forum.joomla.org/viewtopic.php?f=470&t=473666#p2015114http://forum.joomla.org/viewtopic.php?f=470&t= 473666&p = 3424061#p2850629

1
Michael Yaeger