Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 8.0에서 지원 중단(Deprecated)된 기능 총정리

MySQL 8.0에서 지원 중단(deprecated)으로 표시된 일부 기능은 향후 버전에서 완전히 제거될 수 있습니다. 따라서 해당 버전의 지원 중단 기능을 사용하고 있는 애플리케이션이라면, 가능한 한 빨리 코드를 점검하고 대체 방안으로 전환하는 것이 좋습니다.

이 글에서는 MySQL 8.0에서 지원 중단된 주요 기능들을 항목별로 정리해 살펴보겠습니다.

1. 문자셋(Character Set) 관련

  • utf8mb3 문자셋이 지원 중단되었습니다. 앞으로는 utf8mb4를 사용해야 합니다. utf8mb4는 이모지를 포함한 모든 유니코드 문자를 지원하므로 사실상 표준으로 자리 잡았습니다.

2. 인증 및 보안 관련

  • sha256_password 인증 플러그인이 지원 중단되었으며, 향후 업데이트에서 제거될 수 있습니다. 대신 caching_sha2_password를 사용하는 것이 권장됩니다.
  • validate_password 플러그인에 구현 변경이 이루어졌으며, 향후 버전에서 제거될 수 있습니다. 이 플러그인을 계속 사용하려면 컴포넌트(Component) 인프라와 함께 사용하도록 구성해야 합니다.

3. 숫자 데이터 타입 관련

  • FLOAT, DOUBLE 타입 컬럼에 대한 AUTO_INCREMENT 지원이 지원 중단되었습니다.
  • FLOAT, DOUBLE, DECIMAL 타입 컬럼에 대한 UNSIGNED 속성 지원이 지원 중단되었습니다.
  • 숫자 데이터의 ZEROFILL 속성이 지원 중단되었습니다. 앞으로 0으로 채우기가 필요하다면 LPAD() 함수를 활용하는 것이 좋습니다.

4. SQL 문법 및 함수 관련

  • '||' 연산자의 사용이 지원 중단되었습니다. 단, SQL 모드에서 PIPES_AS_CONCAT이 활성화된 경우에는 예외적으로 문자열 연결 연산자로 사용할 수 있습니다.
  • JSON_MERGE() 함수가 지원 중단되었으며, 대신 JSON_MERGE_PRESERVE()를 사용해야 합니다.
  • SELECT 문에서 FROM 절 뒤에 위치하는 INTO 절은 여전히 사용할 수 있지만, SELECT 문의 맨 끝에 INTO 절을 배치하는 방식은 지원 중단되었습니다.

5. 서버 운영 및 관리 관련

  • FLUSH HOSTS 명령이 지원 중단되었습니다. 대신 Performance Schema의 host_cache 테이블을 비우는 방식으로 대체할 수 있습니다.
    TRUNCATE TABLE performance_schema.host_cache;
    참고: TRUNCATE TABLE 작업을 실행하려면 해당 테이블에 대한 DROP 권한이 필요합니다.
  • mysql_upgrade 클라이언트가 지원 중단되었습니다. 그 이유는 mysql 시스템 스키마의 시스템 테이블과 다른 스키마의 객체를 업그레이드하는 기능이 MySQL 서버 자체로 통합되었기 때문입니다.
  • InnoDB memcached 플러그인이 지원 중단되었으며, 향후 MySQL 버전에서 제거될 수 있습니다.
  • 데이터 디렉터리에 생성되어 MySQL 버전 번호를 저장하던 mysql_upgrade_info 파일이 지원 중단되었습니다. 이 파일 역시 향후 버전에서 제거될 가능성이 있습니다.
  • relay_log_info_file 시스템 변수와 --master-info-file 옵션이 지원 중단되었습니다.

마무리

MySQL 8.0의 지원 중단 목록은 향후 버전 업그레이드 시 발생할 수 있는 호환성 문제를 미리 파악하는 데 중요한 참고 자료입니다. 특히 오래된 애플리케이션을 운영 중이라면 위 기능들의 사용 여부를 점검하고, 공식 문서에서 안내하는 대체 기능으로 마이그레이션을 준비하는 것이 안전합니다.