Mysql 업그레이드

Mysql 8.0 -> 8.4 로 업그레이드 방법(윈도우)

-------------------------------------------------------------------------------
    - 버전 확인
mysql --version

    - mysql 접속후 쿼리로 확인 방법
 SELECT VERSION();

---------------------------------------
    -  백업
mysqldump -u 아이디 -p --port 3306 --all-databases --routines --events --single-transaction  --set-gtid-purged=OFF > mysql80_allbackup.sql

    -  호환성 체크
mysqlcheck -u 아이디 -p --port 3306 --all-databases --check-upgrade

    -  설정 파일(my.ini, my.cnf) 파일 백업
cp /etc/mysql/my.cnf ~/my.cnf.8.0.bak

-------------------------------------------------------------------------------
< mysql 인증 플러그인 설정 방법 >
https://codens.tistory.com/3010

 

-------------------------------------------------------------------------------
< 윈도우 >
    -  DB 폴더 경로 확인
C:\ProgramData\MySQL\MySQL Server 8.0\Data

    -  설치파일 다운로드
https://dev.mysql.com/downloads/mysql/

    -  설치
mysql-8.4.x-winx64.msi 실행


    -  설치후 mysql_configurator 실행
         - 8.0 -> 8.4로 업그레이드 작업
C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql_configurator.exe
기존 mysql 8.0 폴더가 삭제된다.

C:\Program Files\MySQL\MySQL Server 8.4\bin 폴더에 환경변수 PATH 경로 설정


-------------------------------------------------------------------------------
< Ubuntu >
* 레포지토리 DEB 패키지 다운로드
     - 최신 버전 확인
https://dev.mysql.com/downloads/repo/apt/

     - 다운로드
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb

* 리포지토리 구성 업데이트
sudo dpkg -i mysql-apt-config_0.8.36-1_all.deb

1. MySQL Server & Cluster (Currently selected: mysql-8.0) 항목을 선택하고 엔터
2. 목록에서 **mysql-8.4-lts**를 선택
3. 다시 메인 메뉴로 돌아오면, 3개 메뉴중 맨 아래 **Ok**(탭이동 아님)를 선택

 


     - APT 인덱스 업데이트
sudo apt-get update

     - 설치되는 mysql 버전 다시 지정하는 방법
sudo dpkg-reconfigure mysql-apt-config

---------------------------------------
     - 업그레이드 호환성 체크
sudo apt-get install -y mysql-shell
mysqlsh -- util checkForServerUpgrade root@localhost:3306 --target-version=8.4.0 --config-path=/etc/mysql/my.cnf

     - 설치될 버전 확인 방법
apt-cache policy mysql-server

---------------------------------------
     - mysql 8.4 설치
sudo apt install mysql-server

     - /etc/mysql/my.cnf 파일 수정
백업해 놓은 값으로 수정

 

 

-------------------------------------------------------------------------------

< DB 설정값 이전 >


mysql v8.0 -> v8.4 파라미터 비교 설정

* group_concat_max_len = 1024000
    - GROUP_CONCAT() 함수 문자열 길이

* regexp_time_limit = 50
     - 정규식 엔진 최대 스텝수, 복잡한 정규식 사용시 필요

* sort_buffer_size = 4024000

    - ORDER BY, GROUP BY 등 정렬 작업 시 세션별로 할당되는 메모리 버퍼 크기

* key_buffer_size = 16777216
     - MyISAM 테이블의 인덱스 블록을 캐시하는 버퍼 크기

* temptable_max_ram = 1073741824
     - TempTable 최대 메모리 크기, 내부 임시 테이블(서브쿼리, UNION, 복잡한 GROUP BY 등) 한도

* log_output = TABLE
     -  쿼리 로그의 출력 대상

* innodb_use_fdatasync = 1 
     - fsync() 대신 fdatasync()를 사용하여 데이터를 디스크에 플러시
     - fdatasync()는 데이터만 동기화하므로 I/O 오버헤드가 줄어들어 쓰기 성능이 향상

* thread_stack = 262144 <= AWS에서는 변경, 실제 서버에서는 다른 값, 재부팅후 확인 필요
     - 각 스레드(커넥션)에 할당되는 스택 메모리 크기
     - 저장 프로시저의 깊은 재귀 호출이나 복잡한 쿼리에서 스택 오버플로가 발생시 늘려야 함


---------------------------------------
gtid_mode = 0 (또는 OFF) <= 기본값

innodb_doublewrite_batch_size = 16 <= 폐지됨
innodb_doublewrite_pages = 32 <= 기본이 128


---------------------------------------
     - 설정된 파라미터 확인 방법
SHOW GLOBAL VARIABLES LIKE 'group_concat_max_len';

 

 

반응형
Posted by codens