MySQL 5.6 DB(로컬 서버) 데이터를 AWS RDS MySQL 8.0.39로 옮기는 과정에서 문제와 해결 과정
MySQL Workbench의 Data Export 기능으로 덤프를 떴는데, 이모지가 전부 ?로 깨져버림.
→ DB 구조는 utf8mb4인데도 덤프 과정에서 손실이 생김.
→ Workbench가 세션 인코딩을 utf8(3바이트)로 강제로 바꿔버림.
원인:
MySQL 5.6 Workbench는 SET NAMES utf8을 기본으로 사용해서 4바이트 문자가 잘려서 덤프됨.
해결:
CLI(mysqldump)로 직접 export하기.
/opt/homebrew/opt/mysql-client@8.0/bin/mysqldump \
-h host\
-u user \
-p password \
--default-character-set=utf8mb4 \
--skip-set-charset \
--single-transaction \
scnew influ \
> ~/Downloads/influ_utf8mb4.sql
옵션 설명
| 옵션 | 설명 |
|---|---|
--default-character-set=utf8mb4 | 4바이트 인코딩 강제 |
--skip-set-charset | 덤프 파일 내 SET NAMES utf8 제거 |
--single-transaction | 대용량 테이블 락 방지 |
Authentication plugin 'mysql_native_password' cannot be loaded원인:
macOS에 설치된 MySQL 9.x 클라이언트(brew install mysql)가 5.6 서버용 인증 플러그인을 지원하지 않음.
해결:
MySQL 8.0 클라이언트 따로 설치 후 그 버전으로 실행.
brew install mysql-client@8.0
설치 후, 다음 경로의 명령어로 실행👇
/opt/homebrew/opt/mysql-client@8.0/bin/mysql \
-h host \
-u user \
-p \
--default-character-set=utf8mb4 \
scnew \
< ~/Downloads/influ_utf8mb4.sql
이모지가 😀 ❤️ 🫶 등으로 정상 표시되면 완벽 성공!
**GUI(Workbench) 대신 CLI를 쓰면, 이모지도 깨지지 않고 인증도 오류 없이 MySQL 5.6 → 8.0 이관 가능