MySQL 프로그램 대부분은 시작 시 필요한 옵션을 옵션 파일(option file), 즉 설정 파일(configuration file)에서 읽어 들일 수 있습니다. 옵션 파일을 활용하면 자주 사용하는 옵션을 미리 지정해 둘 수 있어, 프로그램을 실행할 때마다 명령줄에 일일이 입력하는 번거로움을 없앨 수 있습니다.
프로그램이 옵션 파일을 읽는지 확인하는 방법
- 특정 프로그램이 옵션 파일을 읽는지 확인하려면
--help옵션으로 프로그램을 실행하면 됩니다. - mysqld의 경우
--verbose와--help옵션을 함께 사용합니다. - 프로그램이 옵션 파일을 읽는다면 도움말 메시지에 어떤 파일을 찾는지, 어떤 옵션 그룹을 인식하는지 함께 표시됩니다.
--no-defaults 옵션의 동작
--no-defaults 옵션으로 실행된 MySQL 프로그램은 .mylogin.cnf를 제외한 어떤 옵션 파일도 읽지 않습니다. 또한 persisted_globals_load 시스템 변수가 비활성화된 상태로 시작된 서버는 mysqld-auto.cnf를 읽지 않습니다.
옵션 파일의 종류와 특징
대부분의 옵션 파일은 일반 텍스트 파일로, 아무 텍스트 편집기로나 만들 수 있습니다. 다만 아래의 두 파일은 예외적으로 별도의 방식으로 생성·관리됩니다.
.mylogin.cnf — 로그인 경로 파일
.mylogin.cnf는 로그인 경로(login path) 옵션이 담긴 파일입니다.mysql_config_editor유틸리티가 생성하는 암호화된 파일입니다.- "로그인 경로"는 host, user, password, port, socket 옵션만 허용하는 옵션 그룹입니다.
- 클라이언트 프로그램은
--login-path옵션으로.mylogin.cnf에서 읽어 올 로그인 경로를 지정합니다. - 기본 파일 대신 다른 이름의 로그인 경로 파일을 사용하려면
MYSQL_TEST_LOGIN_FILE환경 변수를 설정해야 합니다. - 이 환경 변수는
mysql-test-run.pl테스트 유틸리티에서 사용되지만,mysql_config_editor및 mysql, mysqladmin과 같은 MySQL 클라이언트에서도 인식됩니다.
mysqld-auto.cnf — 영속화된 시스템 변수 파일
- 데이터 디렉터리에 위치한
mysqld-auto.cnf는 영속화(persisted)된 시스템 변수 설정을 담고 있는 JSON 형식 파일입니다. SET PERSIST또는SET PERSIST_ONLY문을 실행한 후 서버가 자동으로 생성합니다.mysqld-auto.cnf는 반드시 서버가 직접 관리해야 하며, 수동으로 편집해서는 안 됩니다.
마무리
옵션 파일을 잘 활용하면 매번 긴 명령줄 옵션을 입력하지 않아도 되므로 작업 효율이 크게 향상됩니다. 일반 텍스트 기반 옵션 파일은 자유롭게 편집할 수 있지만, .mylogin.cnf는 전용 유틸리티로 생성하고, mysqld-auto.cnf는 서버가 직접 관리한다는 점을 꼭 기억하시기 바랍니다.