티스토리 뷰

ISSUE

최근 지인으로부터 홈페이지 관리해달라는 요청을 받고
연결 계정 받아서 로컬에 개발환경 셋팅하다가

mysql 차례가 되어
서버에서 백업 받고 로컬 DB에 import 후
select 해보니 한글은 모두 물음표로만 표기되는 문제가 발생했다.

TRY

서버의 문자셋을 확인해보는 명령을 mysql 콘솔로 들어가 실행해 보았다.

mysql> show variables like 'c%'

 

결과는 전부 latin1

mysql 기본 문자셋 셋팅을 utf8 로 해놓지도 않았다는것에 한숨...

한글 안깨지게 어떻게 덤프를 떠야하는지 구글링 하여 찾은 명령 실행 해봄

$ mysqldump -uroot -p --default-character-set=latin1 dbname > some_db_2018-09-02.sql

 

위와 같은 명령을 시행했는데도 에디터로 열어보면 한글이 깨져 나옴.

해결

한국 블로그들 여러곳을 둘러봐도 위와 똑같은 글 뿐, 블로그 간 컨텐츠 복붙 내용들에 피를 본 후
영문 구글링 후 아래와 같은 해결책 찾음.

$ mysqldump -uroot -p dbname -r utf8.sql

 

위 명령으로 백업 후 텍스트에디터로 utf8.sql 을 열어보니
한글이 전혀 깨짐 없이 백업되었다.

위와 같이 백업된 파일을 한글 깨짐 없이 import 하려면

mysql -uroot -p --default-character-set=utf8 dbname
mysql> SET names 'utf8'
mysql> SOURCE utf8.sql

 

참고

https://makandracards.com/makandra/595-dumping-and-importing-from-to-mysql-in-an-utf-8-safe-way

 

Dumping and importing from/to MySQL in an UTF-8 safe way

In a nutshell: to avoid your shell character set from messing with imports, use -r to export and SOURCE when importing. Dumping safely # Do not do this, since it might screw up encoding mysqldump -uroot -p database > utf8.dump # this is bad Better do: mysq

makandracards.com

 
댓글