DEV WIKI
백엔드 · 오류·증상

Unknown system variable '%s'

MySQL 오류 번호 1193의 메시지와 현재 오류 문자열을 대조해 식별합니다.

빠른 답변

우선 확인할 원인
현재 오류 메시지가 "Unknown system variable '%s'" 형식이고 오류 번호가 1193이면 MySQL의 ER_UNKNOWN_SYSTEM_VARIABLE 오류입니다.
먼저 확인할 항목
현재 화면 또는 로그의 메시지가 `Unknown system variable '…'` 형식인지 확인합니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
출처 확인일
2026-07-29
최종 검토
2026-07-24
수정일
2026-07-27
오류·수정 제보 (새 창에서 열림)

현재 증상

  • 애플리케이션 오류 메시지

먼저 확인할 항목

현재 화면 또는 로그의 메시지가 `Unknown system variable '…'` 형식인지 확인합니다.

오류 번호가 표시되면 `1193`인지 확인합니다.

SQLSTATE가 표시되면 `HY000`인지 확인합니다.

환경별 원인과 조치

오류 식별

현재 화면 또는 로그의 오류 메시지가 Unknown system variable '…' 형식인지 확인합니다.

오류 번호가 함께 표시되면 1193인지, SQLSTATE가 함께 표시되면 HY000인지 공식 참조 값과 대조합니다.

이 값들이 일치하면 MySQL ER_UNKNOWN_SYSTEM_VARIABLE 오류로 식별합니다.

진단 기록

먼저 문제가 발생한 URL 또는 화면, 표시 시각, 사용한 플랫폼과 배포 버전을 기록합니다. 화면과 로그에서 오류 문자열이 일부만 보이면 앞뒤 문장을 포함해 원문을 보존하고, 민감한 값은 가립니다.

다음 순서로 관찰값을 대조합니다.

  1. 현재 화면 또는 로그의 메시지가 Unknown system variable '…' 형식인지 확인합니다.
  2. 오류 번호가 표시되면 1193인지 확인합니다.
  3. SQLSTATE가 표시되면 HY000인지 확인합니다.

각 항목은 확인한 값과 확인하지 못한 이유를 함께 기록해야 합니다. 이 문서의 조건과 실제 관찰값이 다르면 원인을 단정하지 말고, 문제 해결 시작 가이드에서 더 넓은 분기를 선택하십시오.

판정 기준

오류 문자열이 일치한다는 사실만으로 원인이 확정되지는 않습니다. 같은 문구가 여러 환경에서 나타날 수 있으므로 웹서버·런타임·운영체제·최근 변경 사항을 함께 비교합니다. 한 단계에서 기대한 값이 나오지 않으면 다음 단계로 넘어가지 말고 해당 환경의 공식 문서를 우선 확인합니다.

안전한 다음 단계

검사 전에 백업과 변경 이력을 확인하고, 비밀번호·세션 쿠키·인증 토큰·개인정보를 공개 로그나 문의 내용에 넣지 않습니다. 설정·권한·데이터를 변경해야 한다면 영향 범위와 되돌리는 방법을 먼저 기록한 뒤 운영 시간과 승인 절차에 맞춰 진행합니다.

원인 분포

[Observation] 입력된 3건의 사례 중 2건은 저장 프로그램 또는 트리거에서 변수·행 값을 올바르게 선언하거나 참조하지 않은 경우였고, 1건은 저장 프로그램 블록 밖에서 DECLARE를 실행한 경우였습니다.

[Observation] 이는 수집된 사례 기준의 분류이며, 전체 오류의 실제 발생 빈도를 의미하지 않습니다.

오진 함정

  • [Observation] 저장 프로시저 내부의 이름을 선언하지 않고 SET 구문에 사용하면 시스템 변수로 해석되어 오류가 발생할 수 있습니다.
  • [Observation] 트리거에서 행 값을 일반 이름으로 참조하지 않고 대입하면 오류가 발생할 수 있으며, 사례에서는 NEW.sub3 형태의 참조가 제시되었습니다.
  • [Observation] DECLARE 문법 자체의 문제로 판단하기 전에 실행 위치가 저장 프로그램 블록 내부인지 확인해야 합니다.

환경 매트릭스

환경관찰된 상황사례에서 제시된 확인 사항
저장 프로시저선언하지 않은 이름을 SET에 사용변수 선언과 SELECT 결과 대입 문법 확인
MySQL 트리거행 값을 일반 이름으로 대입BEFORE INSERT에서 NEW.sub3 형태 사용
MySQL Workbench 일반 쿼리 실행저장 프로그램 블록 밖에서 DECLARE 실행사용자 변수 또는 올바른 프로시저 문맥 사용

진단 순서

  1. [Observation] 오류 메시지에 표시된 이름이 시스템 변수로 실제 선언된 이름인지 확인합니다.
  2. [Observation] 해당 문장이 저장 프로시저나 트리거 내부에서 실행되는지 확인합니다.
  3. [Observation] 저장 프로시저라면 변수가 선언되었는지와 SELECT 결과 대입 문법이 올바른지 확인합니다.
  4. [Observation] 트리거라면 행 값 참조가 필요한 위치에서 NEW.<컬럼명> 형태를 사용하는지 확인합니다.
  5. [Observation] DECLARE라면 저장 프로그램 블록 안에서 실행되는지 확인하고, 그렇지 않으면 사례에서 제시된 사용자 변수 사용을 검토합니다.

참고 자료

MySQL :: MySQL 8.0 Error Reference :: 2 Server Error Message Reference (새 창에서 열림)

MySQL · 공식 자료 · 확인 범위: MySQL 오류 번호 1193의 심볼은 ER_UNKNOWN_SYSTEM_VARIABLE입니다., MySQL 오류 번호 1193의 SQLSTATE는 HY000입니다., MySQL 오류 번호 1193의 메시지는 "Unknown system variable '%s'"입니다. · 확인일: 2026-07-24

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: 저장 프로시저에서 선언하지 않은 이름을 SET 구문에 사용해 오류가 발생했습니다., 변수 선언과 SELECT 결과 대입 문법이 원인으로 제시되었습니다. · 확인일: 2026-07-29

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: MySQL 트리거에서 sub3을 일반 이름으로 대입해 오류 1193이 발생했습니다., BEFORE INSERT 트리거에서 NEW.sub3 형태로 행 값을 설정하는 방법이 제시되었습니다. · 확인일: 2026-07-29

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: MySQL Workbench에서 DECLARE 뒤에 RecCount를 대입하자 오류 1193이 발생했습니다., DECLARE를 저장 프로그램 블록 밖에서 일반 쿼리로 실행한 것이 원인으로 제시되었습니다. · 확인일: 2026-07-29