MySQL 8.0 Deprecated Features: What You Need to Know
MySQL 데이터베이스를 관리하신다면 최근 소식을 접하셨을 겁니다. 바로 MySQL 8.0 EOL(End of Life)을 앞두고 있으며, 그 중심에 MySQL 8.4, 최초의 LTS 버전이 등장했다는 소식입니다. 이는 안정성을 중요시하는 모든 이에게 반가운 소식입니다. 장기적으로 더욱 예측 가능하고 엔터프라이즈 환경에 적합한 플랫폼을 사용할 수 있게 되었으니까요.
하지만 솔직히 말해, 업그레이드는 단순히 새로운 기능을 얻는 것만이 전부는 아닙니다. 어떤 기능이 사라지는지도 중요합니다.
이것을 기술 부채를 갚는 과정이라고 생각해보세요. 8.0 로그에서 보셨을지 모를 “deprecated(사용 중단)” 경고 메시지들, 이제는 그 대가를 치러야 할 때가 왔습니다. 이전에는 단순히 친절한 알림이었던 것이 이제는 잠재적인 장애물이 될 수 있습니다.
저희가 이 과정을 함께하겠습니다. 예상치 못한 문제없이 말이죠. 무엇이 바뀌고, 무엇이 영원히 사라지는지, 그리고 어떻게 하면 업그레이드를 순조롭고 성공적으로 준비할 수 있는지 함께 이야기해 봅시다.
First, let’s get the lingo straight: Deprecated vs. removed
이 부분은 얼마나 신속하게 조치를 취해야 하는지를 결정하기 때문에 매우 중요합니다.
Removed: 이 기능은 완전히 사라졌습니다. 만약 여러분의 애플리케이션 코드나 스크립트가 MySQL 8.4에서 이 기능을 사용하려 한다면 오류가 발생할 것입니다. 이러한 요소들이 바로 업그레이드를 중단시키는 원인이 되므로, 업그레이드를 시작하기 전에 반드시 수정해야 합니다.
Deprecated: 이것은 MySQL 이 여러분에게 보내는 일종의 친절한 경고입니다. 이 기능은 8.4 에서도 여전히 작동하지만, 향후 버전(예: 9.0)에서는 공식적으로 삭제될 예정입니다. 다음 업그레이드를 미리 계획하고 대비할 수 있는 기회입니다.
How to find MySQL 8.0 deprecated features in your environment
본인의 시스템이 해당되는지 확실하지 않으신가요? 대부분의 팀은 업그레이드가 실패하거나 테스트에서 오류가 발생하고 나서야 알게 됩니다. 다행히도 MySQL Shell 에는 util.checkForServerUpgrade() 같은 도구가 포함되어 있어, 미리 사용 중단 예정 기능이나 업그레이드를 막는 요소가 있는지 도움을 받을 수 있습니다.
The upgrade blockers: Features GONE in MySQL 8.4
다음 체크리스트에서 가장 시급히 처리해야 할 항목들입니다. 8.0.x 버전에서 업그레이드한다면, 이 문제들을 가장 먼저 찾아내서 해결해야 합니다.
PASSWORD() function
오래전부터 사람들은 비밀번호를 관리하기 위해 SET PASSWORD=PASSWORD(…) 를 사용했습니다. 이 방식은 오래되고 보안에 취약한 hashing 방법과 연결되어 있어 이제는 완전히 사라졌습니다.
해결방법: 모든 사용자 관리 스크립트를 CREATE USER … IDENTIFIED BY ‘password’ 와 ALTER USER … IDENTIFIED BY ‘password’를 사용하도록 변경해야 합니다.
The tx_isolation system variable
transaction_isolation 의 오래된 alias이었습니다. 수년간 사용되지 않다가 마침내 제거되었습니다.
해결방법: 애플리케이션 코드와 설정 파일에서 tx_isolation 을 transaction_isolation 으로 찾기 및 변경하기를 하세요.
Expire_logs_days
이것은 binlog 보관 기간을 설정하는 이전 방식입니다. 이제는 훨씬 더 세밀한 binlog_expire_logs_seconds 로 대체되었습니다.
해결 방법: MySQL 설정을 업데이트하여 대신 binlog_expire_logs_seconds 를 사용하세요.
The road ahead: What’s newly deprecated in 8.4
MySQL 8.4 버전을 사용하면 이제 새로운 경고 메시지들을 보게 될 것입니다. 다음 업그레이드를 더 쉽게 진행할 수 있도록 지금부터 이 문제들을 해결할 계획을 세워야 합니다.
Mysql_native_password
이것은 8.0 이전 버전의 기본 인증 플러그인이었습니다. 현재 기본값인 caching_sha2_password 보다 보안이 취약하므로, 공식적으로 사용 중단될 예정입니다. 지금부터 사용자 및 오래된 애플리케이션을 감사하여 최신 인증 플러그인을 사용할 수 있는지 확인해야 합니다.
FLUSH HOSTS
이 명령어는 최신 컨테이너 환경에서는 유용성이 떨어집니다. 사용이 중단될 예정이므로, 유지보수 스크립트에서 제거하는 것이 가장 좋습니다.
–skip-grant-tables
잃어버린 root 비밀번호를 재설정하기 위해 ‘비상용’옵션을 사용해 본 경험이 있지만, 이는 심각한 보안 취약점입니다. 이 기능의 사용 중단은 훨씬 안전한 init-file 방식을 사용하도록 유도합니다.
FLOAT(M,D) and DOUBLE(M,D) syntax
많은 개발자들이 십진수 크기를 정의하기 위해 이 비표준 문법을 사용해 왔습니다. 하지만 SQL 표준은 단순히 FLOAT 또는 DOUBLE이므로, MySQL 은 혼동을 일으키는 이 문법을 제거했습니다.
이제는 스키마를 정의할 때 간단하게 FLOAT 또는 DOUBLE 타입을 사용해야 합니다. 반올림이나 특정 형식 지정과 같은 처리는 애플리케이션 로직 내에서 다루는 것이 좋습니다. 현재 이 문법은 사용 중단(deprecated)되었지만, 향후 MySQL 버전에서는 완전히 제거될 예정이니 대비해야 합니다.
Default_authentication_plugin
명확성을 위해 이름이 변경되었습니다. 이 변수는 이제 default_authentication_policy 라고 불립니다.
Managing the MySQL lifecycle
제거되거나 사용 중단되는 기능의 끊임없는 순환을 이해하면 한 가지가 명확해집니다. MySQL 환경 관리는 일회성 해결책이 아니라 지속적인 과정이라는 것이다. MySQL 8.0 의 지원 종료(EOL)는 실제 마감 시한이지만, 동시에 데이터베이스 전략을 주도적으로 관리하고, 숨겨진 위험을 피하며, 미래를 계획할 수 있는 기회이기도 하다.

So, what’s next? Choose your path for MySQL 8.0 EOL
MySQL 8.0 의 지원 종료(EOL)가 2026년 4월로 다가옴에 따라 중요한 결정을 내려야 합니다. 제거된 기능 목록을 보면, 업그레이드는 단순한 단계가 아니며 전체 애플리케이션 스택에 영향을 미칠 수 있다는 것을 알 수 있습니다.
Percona 에서는 여러분이 스스로 MySQL 전략을 주도해야 한다고 믿습니다. 지금 당장 업그레이드를 할 준비가 되었든, 더 많은 준비 시간이 필요하든, 우리는 비즈니스 요구를 지원할 수 있는 방안을 가지고 있습니다.
Path 1: Upgrade to Percona Server for MySQL 8.4
현대적이고 안정적이며 더 높은 성능을 제공하는 플랫폼으로 이동할 준비가 되어 있다면, 이것이 바로 당신을 위한 길입니다. 업그레이드를 통해 보안 강화, 사용성 개선, 데이터베이스 성능 향상과 같은 이점을 누릴 수 있습니다.
그러나 이러한 복잡한 과정을 혼자 헤쳐 나갈 필요는 없습니다. Percona 팀이 다음과 같은 부분을 도와줄 수 있습니다:
- 문제를 발생하기 전에 사용 중단된 기능들을 파악하고 해결합니다.
- 애플리케이션, 라이브러리, OS 가 원활하게 작동하는지 전체 스택을 평가합니다.
- 최소한의 서비스 중단과 다운타임을 보장하며 업그레이드를 계획하고 실행합니다.
- 장기적인 성공을 위해 업그레이드 후 데이터베이스를 튜닝합니다.
Path 2: Get Post-EOL Support for MySQL 8.0
당장 업그레이드가 현실적으로 어렵다고 할 수도 있습니다. 마이그레이션에 더 많은 시간이 필요한 레거시 애플리케이션이 있거나, 지금은 대규모 업그레이드 프로젝트를 진행할 내부 리소스가 부족할 수도 있습니다.
이럴 때 Percona의 지원 종료(EOL) 이후 지원(Post-EOL support)은 전략적인 이점이 됩니다. 이는 문제를 외면하는 것이 아니라, 안전하게 시간을 확보하는 것입니다. 우리는 MySQL 8.0 데이터베이스를 EOL 이후 최대 3년 동안 안전하고 안정적으로 유지해 주어, 지원이 중단된 데이터베이스의 위험을 떠안지 않고 다음 단계를 계획할 수 있는 여유를 제공합니다. 여기에는 다음이 포함된다:
- 새롭게 발견된 보안 취약점(CVE)에 대한 전문가 수준의 패치 제공합니다.
- 문제 해결을 위한 24시간 연중무휴로 지원합니다.
- 중요 문제에 대한 SLA 보장합니다.
Upgrade or stay on 8.0. We’ll support you either way
자신에게 맞는 방식으로 MySQL 라이프사이클을 관리하는 것은 매우 중요합니다. Percona Server for MySQL 8.4 로의 원활한 업그레이드를 실행할 믿음직한 파트너가 필요하든, 아니면 계획을 세우는 동안 8.0 인스턴스를 안전하게 유지할 전문가의 지원이 필요하든, Percona 가 도와드릴 수 있습니다.
블로그 원문 : https://www.percona.com/blog/mysql-8-0-deprecated-features-what-you-need-to-know/
자유롭게 댓글을 달아주세요! 언제나 환영합니다.
기타 문의: info@neoclova.co.kr
네오클로바 기술블로그 홈 바로가기: https://neoclova.net
네오클로바 홈페이지: http://neoclova.co.kr
