>  기사  >  데이터 베이스  >  mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

PHPz
PHPz앞으로
2023-06-02 22:32:522042검색

상황 1: 두 개의 라이브러리가 동일한 물리적 호스트에 있습니다

mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

공동 쿼리(두 개의 서로 다른 라이브러리, myemployees 라이브러리 및 shoppingCart 라이브러리) 이 두 라이브러리는 모두 내 로컬 컴퓨터에 있는 동일한 물리적 호스트에 있습니다.

mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

#联合查询(不同的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;

시나리오 2: 두 라이브러리가 동일한 물리적 호스트에 있지 않습니다(즉, 두 라이브러리가 서로 다른 물리적 호스트에 있음)

효과를 보여주기 위해 여기서는 가상 머신을 사용하고 나의 가상머신(centos)에 리눅스 시스템이 설치되고, 리눅스 시스템에 MySql 데이터베이스가 설치되고, MySql 데이터베이스 서비스가 시작되어 모든 환경이 완성되었습니다.

내 Linux 시스템(centos)의 IP는 192.168.117.66입니다. 내 로컬 작성자 테이블과 원격 사용자 테이블 간에 공동 쿼리를 수행할 계획입니다.

Linux에서 SHOW CREATE TABLE `user`를 입력하고 결과를 얻은 후 mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

CREATE TABLE IF NOT EXISTS `user` (
  `id` INT(11) DEFAULT NULL,
  `name` VARCHAR(20) DEFAULT NULL
)

이 코드를 내 로컬 데이터베이스에 복사하고

마지막에 mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';这句话。

mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

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 원격 데이터베이스 간 공동 쿼리를 구현하는 방법사실, 직설적으로 말하면 내 로컬 데이터베이스에 원격 데이터베이스 연결 바로 가기(원격 데이터베이스 연결 바로 가기)를 만드는 것과 비슷합니다. 이는 우리 윈도우 운영 체제의 바탕 화면에 있는 바탕 화면 바로 가기와 유사합니다. 바탕 화면을 두 번 클릭하면 소프트웨어 아이콘을 열 수 있습니다. 동일한 원리입니다.

mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법위 명령문을 실행하면 됩니다.

그런데 한 가지 더 주의할 점이 있습니다:

로컬 mysql 데이터베이스의 FEDERATED 엔진

이 켜져 있는지 확인해야 합니다.

SHOW ENGINES;
mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법FEDERATED가 NO인 경우 활성화되지 않았음을 의미하며 mysql 데이터베이스의 구성 파일을 수정해야 합니다.

로컬 mysql 데이터베이스의 구성 파일을 수정하고 아래와 같이 구성 파일 끝에

federated를 추가합니다.

Windows 시스템을 사용하는 경우

my.ini 파일을 수정합니다. Linux For system을 사용하는 경우 my.cnf

파일을 수정하세요.

구성 파일을 수정한 후 mysql 서비스를 다시 시작하는 것을 잊지 마세요.

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`;

mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법

SELECT * FROM author INNER JOIN  `user`;

위의 서버 간 및 데이터베이스 간 쿼리의 경우 다음 사항에 주의해야 합니다.

1 이 데이터베이스 간 쿼리 방법은 트랜잭션을 지원하지 않으므로 트랜잭션을 사용하지 않는 것이 가장 좋습니다.

2. 테이블 구조는 수정할 수 없습니다. 3.MySQL은 이 데이터베이스 간 쿼리 방법을 사용합니다. 현재 원격 데이터베이스는 MySQL만 지원하며 다른 데이터베이스는 이를 지원하지 않습니다.

4. 테이블 구조는 대상 데이터베이스 테이블과 완전히 일치해야 합니다.

위 내용은 mysql 원격 데이터베이스 간 공동 쿼리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제