우분투 18.04에서 MySQL 버전 업그레이드: 안전한 전환 및 설정 마이그레이션 가이드

우분투 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. 새 버전 설치
- **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. 롤백 계획

업그레이드 실패 시:

  1. 새 서비스 중지: sudo systemctl stop mysql-server
  2. 새 버전 제거: sudo apt purge mysql-server
  3. 이전 버재 설치 및 백업 복원: ``` 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으로의 안전한 업그레이드를 완료하고 기존 설정 및 데이터 무결성을 유지할 수 있습니다.

태그: MySQL ubuntu database-migration configuration server-administration

6월 16일 19:56에 게시됨