우분투 18.04에서 MySQL 버전 업그레이드: 안전한 전환 및 설정 마이그레이션 가이드
1. 사전 준비
- 데이터베이스 백업 (필수 단계): ``` mysqldump -u admin -p --all-databases > complete_backup.sql
- **현재 설정 기록**: ```
cp /etc/mysql/mysql.conf.d/custom.cnf config_backup.cnf
- 호환성 확인:
- 애플리케이션이 대상 버전(예: MySQL 8.0)을 지원하는지 확인
- 저장 엔진 변경 사항 확인(예: MyISAM에서 InnoDB로)
2. 기존 버전 제거
sudo systemctl halt mysql
sudo apt remove --purge mysql-server* mysql-client*
sudo apt autoremove --yes
데이터 디렉토리
/var/lib/mysql은 삭제하지 마세요
3. 새 버전 설치
- 공식 리포지토리 추가: ``` wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb # 대상 버전 선택 sudo apt update
- **MySQL 설치**: ```
sudo apt install mysql-server-8.0
4. 설정 마이그레이션
- 설정 파일 병합: ``` #新旧 설정 비교 diff config_backup.cnf /etc/mysql/mysql.conf.d/mysql.cnf
- 핵심 수동 매개변수 이전: ```
[mysqld]
# 이전 버전 설정 이전
max_connections = 300
innodb_buffer_pool_size = 4G
character-set-server = utf8mb4
- 권한 수정: ``` sudo chown -R mysql:mysql /var/lib/mysql
##### **5. 데이터 마이그레이션 및 검증**
- **백업 파일 가져오기**: ```
mysql -u admin -p < complete_backup.sql
- 업그레이드 점검 실행: ``` sudo mysql_upgrade -u admin -p
- **데이터 무결성 검증**: ```
CHECK TABLE essential_table;
SELECT COUNT(*) FROM vital_records;
6. 호환성 처리
- 암호 플러그인 업데이트 (MySQL 8.0용): ``` ALTER USER 'admin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secure_password';
- **이전 인증 방식 유지** (선택 사항): ```
[mysqld]
default_authentication_plugin=caching_sha2_password
7. 서비스 시작 및 모니터링
sudo systemctl start mysql-server
sudo systemctl enable mysql-server
# 로그 모니터링
tail -f /var/log/mysql/mysql.log
8. 롤백 계획
업그레이드 실패 시:
- 새 서비스 중지:
sudo systemctl stop mysql-server - 새 버전 제거:
sudo apt purge mysql-server - 이전 버재 설치 및 백업 복원: ``` sudo apt install mysql-server-5.7 mysql -u admin -p < complete_backup.sql
> ️ **주의사항**:
>
> 1. 프로덕션 환경에서는 테스트 머신에서 먼저 검증
> 2. `/var/lib/mysql`에 완전한 백업이 있는지 확인
> 3. 업그레이드 후 기본 암호 정책 즉시 수정: ```
> SET GLOBAL validate_password.policy=MEDIUM;
>
> ```
위 단계를 통해 MySQL 5.7에서 8.0으로의 안전한 업그레이드를 완료하고 기존 설정 및 데이터 무결성을 유지할 수 있습니다.