DB

[MySQL] ALTER SERVER 완벽 가이드 사용법(원격 데이터 소스 수정)

인생아 2025. 2. 20. 00:30
반응형

MySQL에서 CREATE SERVER를 사용하면 원격 MySQL 서버를 등록하여 FEDERATED 스토리지 엔진을 활용할 수 있습니다. 그러나 시간이 지나면서 원격 서버의 접속 정보, 포트, 사용자 계정 등이 변경될 수 있으며, 이런 경우 기존 설정을 수정해야 합니다.

이때 사용하는 명령어가 ALTER SERVER입니다.

MySQL ALTER SERVER란?

ALTER SERVER 명령어는 MySQL에서 기존에 등록된 원격 서버의 접속 정보를 변경하는 기능을 제공합니다.

이 명령어를 사용하면 새로운 호스트 주소, 사용자 계정, 비밀번호, 데이터베이스 정보 등을 수정할 수 있으며, 기존의 원격 연결을 유지하면서 변경된 설정을 반영할 수 있습니다.

반응형

ALTER SERVER의 주요 기능

  1. 원격 서버의 호스트 정보 수정
    • 등록된 원격 MySQL 서버의 IP 주소 또는 도메인을 변경
  2. 접속 계정 정보 변경
    • 원격 MySQL 서버의 사용자 계정 및 비밀번호 수정 가능
  3. 데이터베이스 이름 변경
    • 원격 데이터베이스의 이름을 새로운 데이터베이스로 수정 가능
  4. 포트 번호 변경 가능
    • 기존의 MySQL 포트(기본 3306)에서 새로운 포트로 변경 가능
  5. FEDERATED 테이블과 함께 활용 가능
    • ALTER SERVER를 통해 FEDERATED 테이블과의 연결을 유지하면서 설정 변경 가능
반응형

MySQL ALTER SERVER 기본 문법

ALTER SERVER 서버_이름  
OPTIONS (  
  HOST '새로운_IP_주소',  
  DATABASE '새로운_DB_이름',  
  USER '새로운_사용자',  
  PASSWORD '새로운_비밀번호',  
  PORT 3307  
);
  • 서버_이름 → 기존에 생성된 서버의 이름
  • HOST → 변경할 원격 MySQL 서버의 IP 주소
  • DATABASE → 새로운 데이터베이스 이름
  • USER → 새로운 사용자 계정
  • PASSWORD → 변경된 비밀번호
  • PORT → 변경할 MySQL 포트 번호

ALTER SERVER 사용 예제

1. 원격 MySQL 서버의 IP 주소 변경

ALTER SERVER remote_db  
OPTIONS (  
  HOST '192.168.1.200'  
);

기존에 등록된 remote_db 서버의 IP 주소를 192.168.1.200으로 변경하는 예제입니다.

2. 접속 계정 및 비밀번호 변경

ALTER SERVER remote_db  
OPTIONS (  
  USER 'new_user',  
  PASSWORD 'new_secure_pass'  
);

이제 원격 서버 접속 계정이 new_user, 비밀번호가 new_secure_pass로 변경됩니다.

3. 원격 데이터베이스 이름 변경

ALTER SERVER remote_db  
OPTIONS (  
  DATABASE 'new_sales_db'  
);

원래 등록된 데이터베이스가 sales_db였다면, 이를 new_sales_db로 변경하는 예제입니다.

4. MySQL 포트 번호 변경

ALTER SERVER remote_db  
OPTIONS (  
  PORT 3307  
);

기존의 포트 3306을 3307로 변경하는 예제입니다.

5. 여러 설정을 한 번에 변경

ALTER SERVER remote_db  
OPTIONS (  
  HOST '192.168.1.210',  
  USER 'updated_user',  
  PASSWORD 'updated_pass',  
  DATABASE 'updated_db',  
  PORT 3308  
);

위 예제는 IP 주소, 사용자 계정, 비밀번호, 데이터베이스 이름, 포트 번호까지 한 번에 수정하는 방법을 보여줍니다.

반응형

ALTER SERVER 활용 시 주의할 점

1. FEDERATED 엔진 활성화 필요

  • ALTER SERVER를 사용하려면 MySQL FEDERATED 엔진이 활성화되어 있어야 합니다.
  • my.cnf 설정 파일을 열어 다음과 같이 설정합니다.
[mysqld]
federated
  • 이후 MySQL을 재시작해야 적용됩니다.
sudo systemctl restart mysql

2. 보안 설정 고려 필요

  • 원격 접속 정보를 수정할 때 강력한 비밀번호 설정 필수
  • 특정 IP에서만 접근하도록 MySQL 방화벽 설정 권장

3. 데이터 무결성 유지 필요

  • 원격 데이터베이스의 이름이 변경될 경우 기존 FEDERATED 테이블과의 연결이 끊길 수 있으므로 주의해야 합니다.
  • 필요 시 ALTER TABLE 명령어를 사용하여 FEDERATED 테이블을 수정할 수 있습니다.

4. ALTER SERVER 권한 필요

  • ALTER SERVER 명령어를 실행하려면 SUPER 또는 FEDERATED ADMIN 권한이 필요합니다.
GRANT SUPER ON *.* TO 'admin_user'@'%';
FLUSH PRIVILEGES;

5. ALTER SERVER 이후 변경사항 즉시 반영되지 않을 수도 있음

  • 변경사항을 즉시 반영하려면 MySQL을 재시작하거나 새로운 세션을 시작해야 합니다.
반응형

ALTER SERVER 삭제 방법

만약 원격 서버 정보를 완전히 제거하려면 DROP SERVER 명령어를 사용합니다.

DROP SERVER remote_db;

이렇게 하면 remote_db에 대한 설정이 MySQL에서 삭제됩니다.

MySQL ALTER SERVER 활용 예제 추가

6. 여러 원격 서버를 관리하는 방법

다양한 원격 서버를 등록하고 관리할 수 있습니다.

CREATE SERVER remote_db_1  
FOREIGN DATA WRAPPER mysql  
OPTIONS (  
  HOST '192.168.1.101',  
  DATABASE 'inventory_db',  
  USER 'admin',  
  PASSWORD 'pass123',  
  PORT 3306  
);

CREATE SERVER remote_db_2  
FOREIGN DATA WRAPPER mysql  
OPTIONS (  
  HOST '192.168.1.102',  
  DATABASE 'analytics_db',  
  USER 'analytics_user',  
  PASSWORD 'analyzepass',  
  PORT 3306  
);

이제 ALTER SERVER를 활용하여 각각의 원격 서버 설정을 필요에 따라 변경할 수 있습니다.

ALTER SERVER remote_db_1  
OPTIONS (  
  HOST '192.168.1.150',  
  USER 'new_admin',  
  PASSWORD 'new_pass'  
);

이처럼 여러 원격 서버를 쉽게 관리할 수 있습니다.

결론

MySQL ALTER SERVER 명령어는 원격 서버의 IP 주소, 사용자 계정, 데이터베이스 이름, 포트 등을 변경하는 중요한 기능입니다. 이를 통해 동적인 환경에서도 유연하게 원격 서버를 관리하고 분산 데이터베이스 시스템을 최적화할 수 있습니다.

참고 자료

공식 가이드 문서: https://dev.mysql.com/doc/refman/8.0/en/alter-server.html

반응형