comp_err란 무엇인가?
comp_err는 mysqld가 다양한 오류 코드에 따라 어떤 오류 메시지를 표시할지 결정할 때 사용하는 errmsg.sys 파일을 생성하는 유틸리티입니다.
최근 MySQL 업데이트 이후에는 오류 정보가 더 이상 단일 파일에서 관리되지 않고, share 디렉터리에 위치한 messages_to_error_log.txt와 messages_to_clients.txt 두 개의 파일에서 가져옵니다.
참고로 MySQL 8.0.19 이전 버전에서는 sql/share 디렉터리의 errmsg-utf8.txt 파일이 오류 정보의 출처였습니다.
또한 comp_err는 오류 관련 헤더 파일인 mysqld_error.h, mysqld_ername.h, mysqld_errmsg.h도 함께 생성합니다.
comp_err 실행 방법
comp_err는 아래와 같은 형식으로 호출할 수 있습니다.
shell> comp_err [options]
주요 옵션 정리
--charset=dir_name, -C dir_name
문자 집합(character set) 디렉터리를 지정합니다. 기본값은 ../sql/share/charsets입니다.
--debug=debug_options, -# debug_options
디버깅 로그를 작성합니다. 일반적인 debug_options 문자열은 d:t:O,file_name 형태이며, 기본값은 d:t:O,/tmp/comp_err.trace입니다.
--debug-info, -T
프로그램이 종료될 때 디버깅 정보를 출력합니다.
--errmsg-file=file_name, -H file_name
생성할 오류 메시지 파일의 이름을 지정합니다. 기본값은 mysqld_errmsg.h입니다. 이 옵션은 MySQL 8.0.18 버전에서 추가되었습니다.
--header-file=file_name, -H file_name
오류 헤더 파일의 이름을 지정합니다. 기본값은 mysqld_error.h입니다.
--in-file-errlog=file_name, -e file_name
오류 로그(error log)에 기록될 오류 메시지를 정의하는 입력 파일의 이름입니다. 기본값은 ../share/messages_to_error_log.txt입니다.
--name-file=file_name, -N file_name
오류 이름 파일의 이름을 지정합니다. 기본값은 mysqld_ername.h입니다.
--out-dir=dir_name, -D dir_name
출력 파일이 저장될 기본 디렉터리를 지정합니다. 기본값은 ../sql/share/입니다.
--out-file=file_name, -O file_name
생성될 출력 파일의 이름을 지정합니다. 기본값은 errmsg.sys입니다.
--version, -V
버전 정보를 화면에 출력한 후 프로그램을 종료합니다.