MySQL 서버 버전을 업그레이드 하는 버전은 아래 두 가지 방법이 있다.
들어가기 앞서 메이저 버전 업그레이드는 소수점 첫째자리가 변하는 경우 예를 들어 5.5 -> 5.7로 바뀌는 경우를 말하며 마이너 버전 업그레이드는 소수점 둘째자리 이하의 숫자가 바뀌는 경우를 말한다.
데이터 파일을 그대로 두고 서버의 버전을 올리는 방법으로 제약 사항이 있지만 적은 시간이 걸린다는 특징이 있다.
1. 인플레이스 업그레이드 방식은 메이저 버전 업그레이드 시 한 단계씩만 업그레이드가 가능하다.
만약 5.5버전을 5.7버전으로 올리고 싶다면 5.5 -> 5.6 -> 5.7과 같이 순차적으로 업그레이드 해줘야 한다.
2.메이저 버전 업그레이드가 특정 마이너 버전에서만 가능한 경우도 있다.
오라클에서 서버의 안정성을 확인한 GA 버전 이전에 버전의 경우 종종 업데이트를 진행하지 못하는 경우가 있다. 따라서 GA 버전 이후의 버전을 선택하자.
도구를 이용하여 데이터를 SQL 문장이나 텍스트 파일로 덤프한 후 새로 업그레이드된 버전의 MySQL 서버에 데이터를 적제하는 방법으로 제약 사항이 거의 없지만 시간이 오래 걸린다는 특징이 있다.
1. 사용자 인증 방식 변경
MySQL 8.0에서는 사용자 인증 방식이 Caching SHA-2 Authentication으로 바뀌었다. 만약 업그레이드 이전 방식을 사용하고 싶다면 서버를 시작할 때 --defalut-authentication-plugin=mysql_native_password 와 같은 파라미터를 사용해야한다.
2. 호환성 체크
이전 버전에서 손상된 FRM 파일이나 호환되지 않는 데이터 타입 또는 함수가 있는지 mysqlcheck 유티리티를 통해 확인 할 수 있다.
3. 외래키 이름의 길이
외래키의 이름 길이가 64자로 제한되었기에 이전 버전에서 사용하던 외래키 길이를 확인하자
4. 인덱스 힌트
사용하고 있던 힌트가 있다면 바뀐 버전에서 오히려 성능 저하를 일으킬 수 있기에 성능 테스트를 해봐야 한다.
5. GROUP BY에 사용된 정렬 옵션
MySQL 5버전에서 GROUP BY 절에 컬럼 뒤에 정렬 옵션을 사용할 수 있었는데 8버전에서는 제공되지 않는다.
6. 파티션을 위한 공용 테이블스페이스
MySQL에서 테이블이나 인덱스를 논리,물리적으로 나누어 놓은 것을 파티션이라 하는데 해당 정보를 저장하는 물리적 공간을 테이블 스페이스라 한다.
이러한 테이블 스페이스 공간을 8버전에서는 파티션별 개별 테이블스페이스에 저장 해야한다.