mysql - DB Link, FEDERATED TABLE 생성 (1/2) - 준비

2018. 7. 6. 11:23plming/DB

Oracle의 DB Link와 동일한 것을

MySQL에서 처리하는 방법이

 

DB Link시킬 원격테이블을

Local에 FEDERATED Engine을 사용한 TABLE로 생성하는 것이다.

 


1. 준비

 

*** Local DB ***

1.1. FEDERATED Engine 사용가능하도록 설정

 

1.1.1. MySQL에서 FEDERATED Engine 존재여부/상태 확인

 -- MySQL 접속

 # mysql -u root -p

 

 mysql> SHOW ENGINES;

 +--------------------+---------+
 | Engine               | Support |
 +--------------------+---------+
 | FEDERATED          | YES     |  ← 이렇게 표시되어야 준비된 것이다.
 +--------------------+---------+

 

1.1.2. FEDERATED Engine이 존재하지 않는다면?

 mysql> INSTALL PLUGIN federated SONAME 'ha_federated.so';

 

1.1.3. FEDERATED Support가 NO라면?

 # MySQL 설정파일에 FEDERATED Engine 지원 설정

 

 # sudo vi /etc/mysql/my.cnf

 

 [mysqld] 아래에 아래 단어 추가 후 저장
 federated

 # MySQL 서비스 재기동

 # /etc/init.d/mysql restart

 

※ 여기까지해서 FEDERATED Support가 YES 여야 한다.

 

 

*** (연결할) 원격 DB ***

1.2. 접속시킬 ID 생성/권한 설정

     ※ 다른 System에서 해당 ID를 사용하고 있다면,

        (TEST용이 아니라면) 전체 권한을 주기보다는

        접속할 IP와 접속 ID/비번을 별도로 지정하여 설정하는 것이 좋을 듯 하다.

 

 -- MySQL 접속

 # mysql -u root -p

 

 -- 접속할 ID 생성

 -- (지정한 IP에서만 접속을 사용할 수 있도록 제한한다.)

 mysql> CREATE USER '아이디'@'접속을시도하는DB의IP' IDENTIFIED BY '비밀번호';

 

 -- 생성한 ID에 TABLE 접근 권한 설정

 -- (해당 Schema의 모든 테이블에 접근할 때는 테이블명에 * 를 사용)

 -- (별도의 세부권한은 ALL 대신 쓸 수 있다...별도로 조사해야;;;)

 mysql> GRANT ALL PRIVILEGES ON DBSchema명.테이블명 TO 아이디@'접속을시도하는DB의IP';

 

 

mysql - DB Link, FEDERATED TABLE 생성 (2/2) - 생성