simVault 블로그 로고 이미지입니다

[aws] RDS MySQL 8.0 EOS 대처

7/27/2025, 2:39:20 PM (수정: 7/28/2025, 1:50:05 PM)
awssql

2026년 7월 31일에 AWS RDS MySQL 8.0은 표준 지원이 종료된다고 합니다.

버전을 업그레이드 하지 않으면 Extended Support 마이너 버전으로 자동 업그레이드를 한다고 하네요. 그리고 Extended Support 요금도 부과됩니다. 이렇게 되지 않으려면 버전을 업그레이드 하면 됩니다.

버전 업그레이드 방법

버전을 업그레이드하는 방법은 간단합니다. AWS console에서 "수정" 버튼을 누른 후 버전 변경 후 저장하면 업그레이드가 진행됩니다.

참고로 저는 8.0.40 버전에서 8.4.5 버전으로 업그레이드 했습니다.

MySQL 8.0 vs MySQL 8.4

기본 인증 방식

  1. MySQL 8.0: mysql_native_password 대신 caching_sha2_password를 기본 플러그인으로 사용.

    • mysql_native_password는 클라이언트가 서버에 로그인할 때 사용자의 비밀번호를 SHA-1 해시 기반으로 검증하는 방식

    • 현대 기준에서는 취약점이 존재할 수 있어서, caching_sha2_password를 권장함

    • mysql_native_password는 8.0.34에서 deprecated 되었고, 9.0.0에서 완전히 제거됨.

  2. MySQL 8.4: caching_sha2_password를 기본 플러그인으로 사용. 더 나아가서 mysql_native_password 기본적으로 비활성화.

복제 용어

  1. MySQL 8.0: Master/Slave와 같은 오래된 용어 사용

  2. MySQL 8.4: Source/Replica와 같은 포용적인 용어 사용

    • git에서 master라는 용어 대신 main이라는 용어를 쓰는 것과 비슷한 취지로 보임.

외래 키 제약 조건

  1. MySQL 8.0: 외래 키를 만들 때 부모 테이블(참조 대상 테이블)의 컬럼에 고유 제약이 없어도 인덱스만 있으면 외래 키 제약을 걸 수 있었음

  2. MySQL 8.4: 외래 키 제약을 걸려면 반드시 부모 테이블의 해당 컬럼이 고유해야 함

  3. 예시

    • 부모 테이블 (users)

      CREATE TABLE users ( id INT NOT NULL, name VARCHAR(100), INDEX(id) -- 인덱스만 있음 (unique 아님) );
    • 자식 테이블 (orders)

      CREATE TABLE orders ( user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) );
    • MySQL 8.0에서는 이 설정으로도 외래 키 제약이 가능함. 하지만 MySQL 8.4에서 이 설정은 오류 발생. users(id)가 고유하지 않기 때문.

Float 또는 Double을 사용한 AUTO_INCREMENT

  1. MySQL 8.0: 경고와 함께 더 이상 사용되지 않음.

  2. MySQL 8.4: 완전히 제거됨. 사용 시 오류 발생.

참고자료

  1. https://www.percona.com/blog/whats-new-in-mysql-8-4-lts-key-enhancements-explained/?utm_source=chatgpt.com