/*
DB Link
FEDERATED Engine을 사용한 TABLE 생성
*/
1. FEDERATED 확인
mysql> SHOW ENGINES;
+--------------------+---------+
| Engine | Support |
+--------------------+---------+
| FEDERATED | YES | ← 이렇게 표시되어야 함
+--------------------+---------+
2. FEDERATED Engine이 존재하지 않는경우
mysql> INSTALL PLUGIN federated SONAME 'ha_federated.so';
3. FEDERATED Support가 NO일 경우
# MySQL 설정파일에 FEDERATED Engine 지원 설정 (CentOS 7 기준)
vi /etc/my.cnf
[mysqld] 아래에 federated 추가
federated
# MySQL 서비스 재기동
systemctl restart mysqld
4. Link할 서버 접속 정보 생성
# 생성
CREATE SERVER link_test
FOREIGN DATA WRAPPER mysql
OPTIONS (
USER '원본DB 계정',
PASSWORD '원본DB 계정 패스워드',
HOST '원본DB IP',
PORT 3306,
DATABASE '원본DB명'
);
# 수정
ALTER SERVER link_test
OPTIONS (
USER '수정 계정',
PASSWORD '수정 계정 패스워드',
HOST '수정DB IP',
PORT 3306,
DATABASE '수정DB명'
);
# 삭제
DROP SERVER [링크서버명]
# LINK SERVER 조회
use mysql;
select * from servers;
use TEST; -- 확인 후 돌아옴
5. DB Link 처리할 TABLE 생성 (접근할 TABLE을 1:1로 모두 로컬에 생성. 같은 구조로)
# 생성
CREATE TABLE TEST_LINK (
idx int primary key auto_increment
,v1 varchar(200)
,v2 varchar(200)
,v3 varchar(200)
,v4 varchar(200)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='link_test/TEST';
# CONNECTION에서 TEST는 원격지의 원본 DB의 해당 테이블명
# 링크된 서버 조회 정보
use TEST;
select * from TEST_LINK;
https://jang8584.tistory.com/245
http://smurf777.blogspot.com/2015/01/mysql-db-link.html
'[ 서버 & DB 관련 ] > MySQL' 카테고리의 다른 글
mysql 커서 샘플 - Cursor (0) | 2019.04.29 |
---|---|
group_concat() 한줄로 보이도록 - (0) | 2019.04.25 |
Mysql Join에 대한 설명 (0) | 2019.01.21 |
MySQL 데이터 타입 (0) | 2018.11.14 |
MySql 랭킹(순위) 추출 하기 (0) | 2018.09.27 |