본문 바로가기

Database

MySQL 5.7 로 업그레이드시 확인사항

728x90
반응형

MySQL 5.6.x이  EOL 로 인하여 클라우드 진영에서는 MySQL 5.7.x 이나 8.x 으로 업그레이드를 진행중이거나 진행해야 할 것이다. (AWS 에서는 Aurora MySQL 1.x -> 2.x로 업그레이드를 진행해야 한다.)

일반적으로 설치된 MySQL 5.6.x 이하 버전도 성능,보안을 위해 업그레이드를 권장한다.

업그레이드 후 확인사항

1. root@localhost 접속시 접속불가능 이슈

보안이 강화되면서 DBMS가 설치된 자체 서버에서 실행되는 쉘스크립트나 DBA 관리자 접속, 모니터링 툴에 접속이 안되는 경우가 발생할 수 있다.

새로운 root user의 접속정보를 추가하면 해결된다.

CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';

2. ONLY_FULL_GROUP_BY - SQL Mode 기본 활성화

MySQL 5.6을 포함한 이전 버전에서는 group by 에 정의되지 않은 컬럼도 select 에서 사용할 수 있었는데 기본적인 옵션으로 해당 group by 쿼리는 사용할 수 없다.

-- 5.6.x 이하버전에서는 정상적으로 실행 되지만
-- 5.7 이상 버전에서는 에러발생
select a, b, c
  from 테이블
 group by a, b

어떻게 보면 어플리케이션에서는 해당 쿼리가 많이 사용될 수 있어 어플리케이션을 MySQL 5.7 에서 꼭 테스트를 많이 해봐야 한다.(SQL Mode 변경은 권장하지 않는다.)

3. OLD_PASSWORD 함수 제거

mysql_old_password 인증 플러그인(MySQL 4.1 이전 암호방식) 제거되면서 OLD_PASSWORD() 함수 제거

4. YEAR(2) DataType 제거

YEAR(2) DataType을 사용하는 테이블이 있으면 YEAR(4)로 변경/마이그레이션이 필요하다.

5. UNION 쿼리에서 ORDER BY, LIMIT 사용기준 변경

-- 5.7.x 사용법
(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);

 

레퍼런스

MySQL 업그레이드설명서 - https://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html

AWS 업그레이드 설명서 - https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.MajorVersionUpgrade.html#AuroraMySQL.Updates.MajorVersionUpgrade.1to2

 

728x90
반응형