DB 복원시 \-에러가 나올 때
시놀로지(Synology) NAS에서 DB를 복원하려다 Unknown command '\-' 에러를 마주하셨군요. 이 메시지는 보통 SQL 백업 파일의 인코딩(Encoding) 문제나, SQL 파일 상단에 포함된 **주석 처리(--)**를 mysql 클라이언트가 제대로 해석하지 못할 때 발생합니다.
주로 Windows 환경에서 파일을 편집했거나, 특정 텍스트 에디터로 저장하면서 파일 맨 앞에 **BOM(Byte Order Mark)**이 붙었을 때 가장 자주 나타나는 현상입니다.
해결을 위해 다음의 단계들을 시도해 보세요.
1. -f (force) 옵션 사용하기
가장 빠르고 간단한 방법입니다. 사소한 구문 오류나 주석 해석 오류를 무시하고 강제로 실행합니다.
Bash
mysql -u [사용자명] -p [데이터베이스명] < [파일명].sql -f
2. --default-character-set 지정
파일의 인코딩이 UTF-8로 되어 있는지 명시적으로 알려주면 해결되기도 합니다.
Bash
mysql -u [사용자명] -p --default-character-set=utf8mb4 [데이터베이스명] < [파일명].sql
3. SQL 파일 상단 확인 (BOM 제거)
에러 메시지의 line 1이 핵심입니다. 파일의 첫 줄에 보이지 않는 특수 기호가 있을 가능성이 높습니다.
-
해결법:
vi나nano편집기로 파일을 열어 첫 줄에--(하이픈 두 개)로 시작하는 주석이 있다면 이를 삭제해 보거나, 아예 빈 줄을 한두 줄 추가한 뒤 저장하고 다시 시도해 보세요.
4. source 명령어 활용 (권장)
리다이렉션(<) 방식 대신, MySQL 접속 후 내부 명령어로 복원하는 것이 오류 파악에 더 유리합니다.
-
먼저 MySQL에 접속합니다:
mysql -u [사용자명] -p [데이터베이스명] -
접속 후 아래 명령어를 입력합니다:
SQLSET NAMES utf8mb4; SOURCE /절대경로/파일명.sql;
💡 팁: 왜 이런 일이 생길까요?
보통 시놀로지의 Hyper Backup이나 phpMyAdmin에서 내보낸 파일을 윈도우 메모장(Notepad) 등으로 열어보고 저장하면, 눈에 보이지 않는 UTF-8 BOM 값이 추가됩니다. mysql 커맨드라인 툴은 이 값을 읽지 못해 첫 글자인 하이픈(-)을 잘못된 명령어로 인식하게 됩니다.
혹시 파일 용량이 매우 큰가요? 만약 그렇다면 파일을 직접 수정하기 어려우니 **4번 방법(SOURCE 명령어)**을 가장 먼저 시도해 보시는 것을 추천합니다.





