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';
'Code > Database (DB)' 카테고리의 다른 글
| mysql 쿼리를 sqlite 쿼리로 변경, 변수사용, 날짜별 합계 구하기 (0) | 2024.09.22 |
|---|---|
| 기간을 지정해서 백업하고 중복 에러 없이 복구하기 (0) | 2024.09.02 |
| 동시에 2개의 필드 중복값을 제거하는 select 쿼리 (0) | 2024.09.01 |
| mysql 정규식 에러 Timeout exceeded in regular expression 해결 방법 (0) | 2023.12.31 |
| mysql 문자열 검색 , 발견한 횟수(찾은 개수) 구하기 (0) | 2023.12.02 |



