>데이터 베이스 >MySQL 튜토리얼 >연합 테이블을 사용하여 서버 간 MySQL SELECT 쿼리를 어떻게 수행할 수 있습니까?

연합 테이블을 사용하여 서버 간 MySQL SELECT 쿼리를 어떻게 수행할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-27 22:40:13424검색

How Can I Perform Cross-Server MySQL SELECT Queries Using Federated Tables?

연합 테이블을 사용한 MySQL 교차 서버 선택 쿼리

MySQL은 연합 테이블을 사용하여 여러 데이터베이스 서버에 걸쳐 데이터를 쿼리하는 메커니즘을 제공합니다. 이는 서버가 서로 떨어져 있고 직접 연결이 불가능할 때 특히 유용할 수 있습니다.

설명한 시나리오에서 1.2.3.4 및 a.b.c.d에 두 개의 MySQL 서버가 있고 각각 Test라는 데이터베이스를 호스팅하는 경우 다음을 수행할 수 있습니다. 페더레이션 테이블을 사용하여 한 서버에서 행을 선택하고 이를 다른 서버의 테이블에 삽입합니다.

페더레이션 테이블을 생성하려면 먼저 두 서버 사이에 SSH 터널을 설정해야 합니다. 두 개의 서버. 이렇게 하면 다른 서버(로컬 서버)를 통해 한 서버(원격 서버)에 연결할 수 있습니다.

SSH 터널이 설정되면 다음과 같이 로컬 서버에 페더레이션 테이블을 생성할 수 있습니다.

CREATE TABLE federated_table (
    id     INT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:port/database_name/table_name';

여기서:

  • fed_user는 원격 액세스 권한이 있는 사용자입니다. table
  • remote_host는 원격 서버의 IP 주소입니다.
  • port는 원격 서버에 있는 MySQL 인스턴스의 포트 번호입니다.
  • database_name은 다음을 포함하는 원격 데이터베이스의 이름입니다. the table
  • table_name은 리모콘의 이름입니다. table

연합 테이블이 생성되면 해당 테이블에 대해 SELECT 쿼리를 실행하여 원격 테이블에서 데이터를 검색할 수 있습니다. 그런 다음 INSERT 문을 사용하여 쿼리 결과를 로컬 서버의 테이블에 삽입할 수 있습니다.

다음은 페더레이션 테이블에서 행을 선택하고 이를 local_table이라는 로컬 테이블에 삽입하는 쿼리 예시입니다.

INSERT INTO local_table (id, name, other)
SELECT id, name, other FROM federated_table;

위 내용은 연합 테이블을 사용하여 서버 간 MySQL SELECT 쿼리를 어떻게 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.