mysql_secure_installation이란?
mysql_secure_installation은 MySQL 설치 직후 서버의 보안 취약점을 손쉽게 제거할 수 있도록 도와주는 공식 보안 설정 프로그램입니다. 이 프로그램을 실행하면 다음과 같은 작업을 통해 MySQL 설치 환경의 보안을 크게 향상시킬 수 있습니다.
root 계정 비밀번호 설정 — 비밀번호가 없는 root 계정에 안전한 비밀번호를 지정할 수 있습니다.
원격 접근 가능한 root 계정 제거 — 로컬 호스트 외부에서 접속할 수 있는 root 계정을 삭제합니다.
익명 사용자 계정 삭제 — 인증 없이 접속할 수 있는 익명(anonymous) 계정을 제거합니다.
test 데이터베이스 제거 — 기본적으로 모든 사용자(익명 사용자 포함)가 접근할 수 있는 test 데이터베이스와, test_로 시작하는 이름의 데이터베이스에 대한 접근 권한을 삭제합니다.
즉, mysql_secure_installation은 MySQL 설치 후 권장되는 보안 조치들을 대화형 질문 형식으로 안내하며 자동으로 적용해 주는 도구입니다.
기본 사용법
일반적인 사용 방법은 로컬 MySQL 서버에 연결한 상태에서 별도의 인자 없이 mysql_secure_installation을 실행하는 것입니다.
shell> mysql_secure_installation
위 명령을 실행하면 프로그램이 단계별 질문을 통해 어떤 보안 작업을 수행할지 안내합니다. 각 질문에 y(예) 또는 n(아니오)으로 답하면서, 운영 환경에 맞는 보안 수준을 손쉽게 설정할 수 있습니다.
로컬 서버 연결하기
--host, --port 등 일반적인 MySQL 클라이언트 옵션은 명령줄뿐 아니라 옵션 파일에서도 그대로 사용할 수 있습니다. 예를 들어 IPv6를 통해 포트 3307로 로컬 서버에 접속하려면 아래와 같이 입력합니다.
shell> mysql_secure_installation --host=::1 --port=3307
주요 옵션
mysql_secure_installation은 아래 옵션들을 지원하며, 명령줄 또는 옵션 파일의 [mysql_secure_installation]과 [client] 그룹에 지정하여 사용할 수 있습니다.
--host=host_name, -h host_name
지정한 호스트에서 실행 중인 MySQL 서버에 연결합니다.
--no-defaults
옵션 파일을 전혀 읽지 않습니다. 옵션 파일에 포함된 알 수 없는 옵션 때문에 프로그램 시작이 실패하는 경우, 이 옵션을 사용하면 옵션 파일 읽기를 차단할 수 있습니다.
--help, -?
도움말 메시지를 표시한 후 종료합니다.
--use-default
비대화형(noninteractive) 모드로 실행합니다. 사용자 입력 없이 진행되므로 무인(unattended) 설치 작업에 유용하게 활용됩니다.
--user=user_name, -u user_name
서버에 접속할 때 사용할 MySQL 계정의 사용자 이름을 지정합니다.