共同クエリ (2 つの異なるライブラリ、myemployees ライブラリと shoppingCart ライブラリ)、これら 2 つのライブラリは同じ上にあります各物理ホストでは、それらはすべてローカル マシン上にあります。
#联合查询(不同的2个库,myemployees库和shoppingCart库) SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02; # SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION ALL SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;
順番に効果を実証するために、私はここにいます 仮想マシンを使用して、仮想マシンに Linux システム (centos) をインストールしました。MySql データベースが Linux システムにインストールされ、MySql データベース サービスが開始され、すべての環境が完了しました。お世話になりました。
私の Linux システム (centos) の IP は 192.168.117.66 です。 ################################################ #私ローカルの作成者テーブルとリモートのユーザー テーブルの間で共同クエリを実行することを計画しています。
Linux で SHOW CREATE TABLE `user`; と入力して結果を取得した後、
CREATE TABLE IF NOT EXISTS `user` ( `id` INT(11) DEFAULT NULL, `name` VARCHAR(20) DEFAULT NULL )
ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';这句话。
CREATE TABLE IF NOT EXISTS `user` ( `id` INT(11) DEFAULT NULL, `name` VARCHAR(20) DEFAULT NULL )ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';
が最後にあります。実際、上記のステートメントは、率直に言うと、ローカル データベースにリモート データベース接続を作成することです。ショートカット (リモート データベース接続)ショートカット)
、何に似ていますか?これは、ウィンドウ オペレーティング システムのデスクトップにあるデスクトップ ショートカットと似ており、デスクトップをダブルクリックするとソフトウェア アイコンを開くことができ、同じ原理です。 上記のステートメントを実行するだけです。 ところで、もう 1 つ注意すべき点があります。ローカルの
FEDERATED エンジンが有効かどうかを確認する必要があります。 mysql データベースがオンになっていません。
SHOW ENGINES;
#ローカル mysql データベースの構成ファイルを変更し、以下に示すように、構成ファイルの最後に
federated を追加します。 #Windows の場合 Linux システムの場合は、my.ini
ファイルを変更します Linux システムの場合は、my.cnf ファイルを変更します。
#設定ファイルを変更した後は、必ず mysql サービスを再起動してください。
linux は mysql サービス、service mysqld restart を再起動します。
Windows が mysql サービスを再起動します。dos ウィンドウで net stop mysql サービス名を入力し、次に net start mysql サービス名 を入力します。
OK、すべてが完了したら、次の SQL ステートメントを実行して、クロスデータベース クエリのクエリ結果を確認します。
# SELECT id, aname FROM author UNION SELECT id, `name` FROM `user`;
SELECT * FROM author INNER JOIN `user`;
上記のクロスサーバーおよびクロスデータベースクエリでは、次の点に注意する必要があります。 :
1. このクロスデータベース クエリ方法はトランザクションをサポートしていないため、トランザクションを使用しないことをお勧めします。 2. テーブル構造は変更できません。
3.MySQL はこのクロスデータベース クエリ方式を使用します。リモート データベースは現在 MySQL のみをサポートしており、他のデータベースはそれをサポートしていません。 4. テーブル構造は、ターゲット データベース テーブルと完全に一致している必要があります。
以上がmysqlリモートクロスデータベース共同クエリを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。