2016-08-06 5 views
0

私は、MySQLで同じユーザーテーブルを使用したい2つのWebサイトを持っています。同じ2番目のデータベースを使用するサイトの外部データベースから1つのテーブルを使用するにはどうすればよいですか?

1つのサイトにはユーザーがなく、もう1つのサイトには20,000以上のユーザーがいます。ユーザーがSite1のサイトと20kユーザーのサイトをsite2としましょう。

2つのアカウントを設定しなくても、site1またはsite2のいずれかにサインアップしているユーザーが両方のサイトで同じアカウントを使用したいと思っています。

両方のサイトがusersテーブルに全く同じデータ構造を使用しているため、site1のsite2のusersテーブルを使用できる場合、両方のサイトで同じテーブルを使用できます。つまり、site1にサインアップしたユーザーは自動的にsite2にアカウントを持ちます。

一見簡単な方法は、site1からsite2にusersテーブルをインポートするだけです。これは今複製されています。しかし、そう簡単ではありません。

site1にサインアップすると、30〜50人/日、この新しい戦略を設定すると、セルフマーケティングになるので、site2のユーザーも取得します。

新しいユーザーを1人ずつインポートすることは現実的ではなく、毎日ユーザーをインポートするのは妥当ではありません。

私がやりたいことは、単にsite1から外部データベースを使用するようにsite2を取得することです。

サイト1とサイト2の両方が、同一のcpanelで、同じphpmyadminを使用して同じサーバーにあることに注意してください。したがって、同じサーバー上にあるため、別のサーバーへのリモートアクセスを心配する必要はありません。しかし、彼らは別のデータベース名(もちろん)と別のデータベースユーザー/パスを持っています。

また、テーブルはすべて同じ名前ですが異なるデータ(2つの異なるサイトが同じデータベースシステムを使用するため)を1つのデータベースにマージすることはできません。それ以外の場合はsite2の変更もsite1の変更になります。その逆もありますが、これは2つの異なるWebサイトであるためです。

したがって、私はsite2データベースにsite1データベースから外部(しかし同じサーバー上)のテーブル(usersテーブル)を1つだけ使用する方法を教えてください。

+1

はいできます。 site1から、ユーザーがデータベースにログインしているかどうかをチェックしてsite1データベースにログインしている場合は、ユーザーがログインできるようにします。利用できない場合は、別のmysql_pconnectを作成し、新しいdb接続を返します。$ conn2変数に格納します。この新しい接続変数を使用すると、site2 dbをすぐにチェックインできます。使用可能なユーザーがログインできるようにした場合ユーザーがsite2からのものである場合はsite2と同じプロセス。 –

答えて

1

私はcpanelについてよく分かりませんし、あなたのホスティング会社によってサービスがどの程度管理されているかわかりませんが、site2のコードをsite1のデータベースに接続できるようにする必要があります特定のクエリの場合site1のデータベース名(およびアクセス資格情報)とは別に接続するだけです。

もう1つの方法は、site1のコードにAPIレイヤの種類を作成し、このAPIをsite2に公開することです(つまり、site2のコードでは、curlライブラリなど)サイト1と通信して認証関連の機能を実行する(ログイン、登録など)

1つ目の方法は実装がはるかに簡単です。将来的には、データベース構造、ホストされている場所、それらに直接アクセスしている人など、より柔軟なものにしたいと考えています。

+0

はい、これはまさに私が "site2のコードを特定のクエリのsite1のデータベースに接続する" *を行う方法について尋ねられているものです。まったく。だから私はこれをどのようにすることができますか? – agvr3

+0

site2は* site2 *のデータベースにどのように接続しますか?あなたはデータベースサーバードメインを渡しますか?ポート?ユーザー?パスワード?単にサイト1のものを渡してください。 – obe

+0

両方のサイトは、アクセスの詳細を含むグローバル設定ファイルを使用してデータベースにアクセスします。 – agvr3

0

あなたには、 criptを使用して1つのデータベース上の新しいユーザーを読み込んで2番目のデータベースに挿入し、毎分cronジョブでこのスクリプトを実行します。

2番目のオプションは、Site2データベースに接続し、Site1のデータベース(認証、読み取りなど)のユーザーテーブルを照会することです。欠点は、Site1データベース内の他のテーブルとこのテーブルを結合できないことです。

もう1つのオプションは、ユーザーテーブルを複製することです。詳細については、MySQLレプリケーションを検索できます。

関連する問題