집 >데이터 베이스 >MySQL 튜토리얼 >mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법
공동 쿼리(두 개의 서로 다른 라이브러리, myemployees 라이브러리 및 shoppingCart 라이브러리) 이 두 라이브러리는 모두 내 로컬 컴퓨터에 있는 동일한 물리적 호스트에 있습니다.
#联合查询(不同的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;
효과를 보여주기 위해 여기서는 가상 머신을 사용하고 나의 가상머신(centos)에 리눅스 시스템이 설치되고, 리눅스 시스템에 MySql 데이터베이스가 설치되고, 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';를 추가했습니다
사실, 직설적으로 말하면 내 로컬 데이터베이스에 원격 데이터베이스 연결 바로 가기(원격 데이터베이스 연결 바로 가기)를 만드는 것과 비슷합니다. 이는 우리 윈도우 운영 체제의 바탕 화면에 있는 바탕 화면 바로 가기와 유사합니다. 바탕 화면을 두 번 클릭하면 소프트웨어 아이콘을 열 수 있습니다. 동일한 원리입니다.
위 명령문을 실행하면 됩니다.
그런데 한 가지 더 주의할 점이 있습니다:
로컬 mysql 데이터베이스의 FEDERATED 엔진
이 켜져 있는지 확인해야 합니다.SHOW ENGINES;FEDERATED가 NO인 경우 활성화되지 않았음을 의미하며 mysql 데이터베이스의 구성 파일을 수정해야 합니다.
로컬 mysql 데이터베이스의 구성 파일을 수정하고 아래와 같이 구성 파일 끝에
federated를 추가합니다.
Windows 시스템을 사용하는 경우my.ini 파일을 수정합니다. Linux For system을 사용하는 경우 my.cnf
파일을 수정하세요.구성 파일을 수정한 후 mysql 서비스를 다시 시작하는 것을 잊지 마세요. Linux는 mysql 서비스, 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!