DB

[MySQL] DROP SERVER 완벽 가이드 사용법(원격 서버 삭제)

인생아 2025. 2. 20. 08:38
반응형

MySQL에서 CREATE SERVER 명령어를 사용하면 원격 MySQL 서버를 등록할 수 있습니다. 하지만 특정 원격 서버가 더 이상 필요하지 않거나, 접속 정보가 변경되어 새로운 서버를 등록해야 하는 경우, 기존에 설정한 서버를 삭제해야 하는데 이때 DROP SERVER를 사용합니다.

MySQL DROP SERVER란?

DROP SERVER 명령어는 MySQL에서 등록된 원격 서버 정보를 삭제하는 기능을 제공합니다.

이 명령어를 사용하면 원격 서버의 연결 정보가 MySQL에서 제거되며, 이후 해당 서버와의 연결을 재설정하려면 CREATE SERVER를 다시 실행해야 합니다.

반응형

DROP SERVER의 주요 기능

  1. 등록된 원격 서버 삭제
    • CREATE SERVER로 생성된 원격 서버 정보를 완전히 제거
  2. 불필요한 서버 정리 가능
    • 더 이상 사용하지 않는 원격 MySQL 서버를 삭제하여 관리 효율성 향상
  3. 새로운 서버 등록을 위한 준비
    • 기존의 잘못된 설정을 삭제하고, 새로운 서버를 등록할 수 있도록 환경 정리
  4. FEDERATED 스토리지 엔진과 함께 활용 가능
    • FEDERATED 엔진을 사용하여 원격 테이블을 연동하는 경우, 불필요한 서버를 제거 가능
반응형

MySQL DROP SERVER 기본 문법

DROP SERVER 서버_이름;
  • 서버_이름 → 삭제할 원격 MySQL 서버의 이름

DROP SERVER 사용 예제

1. 등록된 원격 서버 삭제

먼저, 현재 등록된 원격 서버를 확인하려면 다음 명령어를 사용합니다.

SELECT * FROM mysql.servers;

이제 특정 원격 서버(remote_db)를 삭제하는 예제입니다.

DROP SERVER remote_db;

이 명령어를 실행하면 MySQL에서 해당 원격 서버 정보가 삭제되며, 이후 해당 서버로 연결할 수 없습니다.

2. 여러 개의 원격 서버 삭제

만약 여러 개의 원격 서버를 관리하고 있고, 특정 서버들이 더 이상 필요하지 않다면 여러 개를 순차적으로 삭제할 수 있습니다.

DROP SERVER remote_db_1;
DROP SERVER remote_db_2;
DROP SERVER remote_db_3;

이렇게 하면 remote_db_1, remote_db_2, remote_db_3이 모두 삭제됩니다.

3. 기존 서버를 삭제하고 새로운 서버로 재설정

MySQL에서 원격 서버 설정을 변경할 때 기존 서버를 삭제하고 새로운 설정을 적용하는 방식도 가능합니다.

DROP SERVER remote_old;
CREATE SERVER remote_new  
FOREIGN DATA WRAPPER mysql  
OPTIONS (  
  HOST '192.168.1.200',  
  DATABASE 'new_db',  
  USER 'new_user',  
  PASSWORD 'new_pass',  
  PORT 3306  
);

이제 기존의 remote_old 서버를 삭제한 후, 새로운 remote_new 서버를 등록할 수 있습니다.

반응형

DROP SERVER 활용 시 주의할 점

1. SUPER 권한 필요

  • DROP SERVER 명령어를 실행하려면 SUPER 권한이 필요합니다.
  • 권한이 부족하면 ERROR 1227 (42000): Access denied 오류가 발생할 수 있습니다.
  • 해결 방법:
GRANT SUPER ON *.* TO 'admin_user'@'%';
FLUSH PRIVILEGES;

2. 삭제된 서버는 복구할 수 없음

  • DROP SERVER를 실행하면 MySQL에서 원격 서버 정보가 완전히 삭제되며, 이를 복구할 수 없습니다.
  • 필요하다면 삭제 전 서버 정보를 백업하는 것이 좋습니다.
SELECT * FROM mysql.servers INTO OUTFILE '/backup/servers_backup.sql';

3. FEDERATED 테이블과 연결된 경우 주의

  • FEDERATED 엔진을 사용하는 경우, 해당 테이블이 갑자기 연결이 끊길 수 있음
  • 필요하다면 ALTER TABLE을 사용하여 테이블을 수정하거나 백업 필요

4. MySQL을 재시작해야 변경이 적용될 수도 있음

  • 일부 환경에서는 DROP SERVER 실행 후 MySQL을 재시작해야 변경이 완전히 적용될 수 있습니다.
sudo systemctl restart mysql

5. 서버가 존재하지 않을 경우 오류 발생

  • 존재하지 않는 서버를 삭제하려고 하면 ERROR 1477 (HY000): The foreign server does not exist 오류가 발생합니다.
  • 해결 방법: 삭제 전 서버 존재 여부 확인
SELECT * FROM mysql.servers WHERE Server_name = 'remote_db';
반응형

DROP SERVER 활용 예제 추가

4. 특정 패턴을 가진 서버를 삭제하는 방법

만약 여러 개의 원격 서버 중 특정 패턴(test_server_%)을 포함하는 서버만 삭제하려면, 다음과 같은 SQL을 실행할 수 있습니다.

SELECT CONCAT('DROP SERVER ', Server_name, ';')  
FROM mysql.servers  
WHERE Server_name LIKE 'test_server_%';

이제 실행된 결과를 복사하여 실행하면 해당 패턴의 모든 서버가 삭제됩니다.

5. DROP SERVER 후 서버 목록 확인

SELECT * FROM mysql.servers;

이 명령어를 실행하면 삭제 후 남아 있는 서버 목록을 확인할 수 있습니다.

결론

MySQL DROP SERVER 명령어는 등록된 원격 MySQL 서버 정보를 완전히 삭제하는 기능을 제공합니다. 이를 통해 불필요한 서버를 제거하고, 새로운 서버로 변경하는 등의 작업을 수행할 수 있습니다.

특히, FEDERATED 엔진을 사용하는 환경에서 서버를 정리할 때 유용하며, SUPER 권한이 필요하다는 점, 삭제된 서버는 복구할 수 없다는 점 등을 주의해야 합니다.

참고 자료

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

반응형