Unix 또는 Linux 환경에서 MySQL의 바이너리 및 패키지 기반 설치를 다운그레이드하는 방법을 살펴보겠습니다. 다운그레이드는 여러 가지 방식으로 수행할 수 있으며, 대표적으로 제자리 다운그레이드(In-Place Downgrade)와 논리적 다운그레이드(Logical Downgrade) 두 가지 방법이 사용됩니다.
제자리 다운그레이드 (In-Place Downgrade)
먼저 새로운 MySQL 버전을 종료합니다.
새 MySQL 바이너리 또는 패키지를 이전 버전의 바이너리 또는 패키지로 교체합니다.
기존 데이터 디렉터리를 그대로 사용하여 이전 MySQL 버전을 다시 시작합니다.
느린 종료(slow shutdown)를 수행하도록
innodb_fast_shutdown값을 0으로 설정해야 합니다.
아래 명령어로 해당 설정을 적용할 수 있습니다.
mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
설정 후에는 아래 명령어로 새 MySQL 서버를 종료합니다.
mysqladmin -u root -p shutdown
느린 종료가 완료되면 데이터 디렉터리에서 InnoDB 리두 로그 파일(ib_logfile* 파일)을 삭제합니다. 이는 릴리스 간 리두 로그 파일 형식의 차이로 인해 발생할 수 있는 다운그레이드 문제를 사전에 방지하기 위한 조치입니다.
논리적 다운그레이드 (Logical Downgrade)
mysqldump를 사용하여 새 MySQL 버전의 모든 테이블을 덤프합니다.생성된 덤프 파일을 이전 MySQL 버전에 로드합니다.
논리적 다운그레이드는 동일한 릴리스 시리즈 내 버전 간 다운그레이드와 직전 릴리스 수준으로의 다운그레이드를 지원합니다.
일반 공급(GA, General Availability) 릴리스 간의 다운그레이드만 지원됩니다.
아래 명령어로 모든 데이터베이스를 덤프할 수 있습니다.
mysqldump -u root -p
--add-drop-table --routines --events
--all-databases --force > data-for-downgrade.sql
덤프가 완료되면 아래 명령어로 새 MySQL 서버를 종료합니다.
mysqladmin -u root -p shutdown