mysql 에서 원격지 디비에 연결하기.
(오라클의 dblink와 같은 기능)


* 먼저 자신의 mysql 에서 federated 엔진이 활성화 상태인지 검사
show engines;
FEDERATED engine 의 Support 가 YES 면 활성화상태임
NO 면 비활성화 상태임

* 비활성화 상태일때 처리
/etc/mysql/my.cnf 파일에서 [mysqld] 항목 아래에 federated 라고 추가만 하면 됨.
[mysql]
federated

* mysql 재시작
sudo service mysql restart


* 원격지 서버링크 만들기
CREATE SERVER doxdb_link
FOREIGN DATA WRAPPER mysql
OPTIONS (
USER '아이디',
PASSWORD '패스워드',
HOST 'boxdb의ip',
PORT 3306,
DATABASE '데이타베이스명');

* 생성된 서버링크 확인
use mysql;
select * from servers;

* federated 테이블 생성
원격지테이블의 create 문을 복사한다.
engine, connection 부분만 수정한다.
CREATE TABLE `로컬테이블명` (
  `seq` smallint(10) NOT NULL AUTO_INCREMENT,
  `card_id` varchar(45) NOT NULL,
  ...
  PRIMARY KEY (`seq`)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8
CONNECTION='doxdb_link/원격지테이블명';




반응형
Posted by 돌비
,