데이터 한글 깨짐 현상 발생

복원하기 위해 코드 입력시 다음과 같은 오류 발생

ERROR:
ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'ÿþ-'.
# 백업
mysqldump -u root -p zerobase > zerobase.sql
# 복원
source zerobase.sql
mysqldump -u root -p zerobase -r backup.sql;
-r(또는 --raw) : mysql 클라이언트가 결과를 출력할 때 특수 문자를 이스케이프하지 않도록 하는 옵션
그러면 왜 -r 옵션을 사용하면 한글이 제대로 출력될까?
이를 이해하려면, 먼저 mysql클라이언트가 결과를 출력하는 방식을 알아야한다.
mysql클라이언트는 기본적으로 특수 문자를 이스케이프하여 출력
이는 데이터베이스의 내용을 안전하게 출력하기 위한 과정인데 한글과 같은 멀티바이트 문자가 깨질 수 있음
-r 옵션 사용시 mysql클라이언트는 이러한 이스케이프 사용X, 데이터를 원형 그대로 출력
따라서, -r옵션을 사용하면 멀티바이트 문자가 깨지지않고 제대로 출력됨
기존에 한글이 깨지는 문제는 mysql클라이언트가 결과를 출력하는 과정에서 발생
-r옵션 사용으로 해당 문제 해결 가능
한글 깨짐 문제 해결

복원 에러 문제 해결
