Loading...
MySQL 9.5 Reference Manual 9.5의 7.1.7 Server Command Options의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
mysqld server를 시작할 때, Section 6.2.2, “Specifying Program Options”에 설명된 방법을 사용하여 프로그램 옵션을 지정할 수 있습니다. 가장 일반적인 방법은 옵션 파일에 옵션을 제공하거나 커맨드 라인에서 제공하는 것입니다.
그러나 대부분의 경우, server가 실행될 때마다 동일한 옵션을 사용하도록 하는 것이 바람직합니다. 이를 보장하는 가장 좋은 방법은 옵션 파일에 옵션을 나열하는 것입니다. Section 6.2.2.2, “Using Option Files”를 참조하십시오. 이 섹션에서는 옵션 파일의 포맷과 구문도 설명합니다.
mysqld는
[mysqld] 및 [server] 그룹에서 옵션을 읽습니다.
mysqld_safe는
[mysqld], [server], [mysqld_safe], [safe_mysqld] 그룹에서 옵션을 읽습니다.
mysql.server는
[mysqld] 및 [mysql.server] 그룹에서 옵션을 읽습니다.
mysqld는 많은 커맨드 옵션을 허용합니다. 간단한 요약을 보려면 다음 커맨드를 실행하십시오:
mysqld --help
전체 목록을 보려면 다음 커맨드를 사용하십시오:
mysqld --verbose --help
목록의 항목 중 일부는 server 시작 시 설정할 수 있는
시스템 변수입니다.
이러한 변수는 런타임에
SHOW VARIABLES 구문을 사용하여 표시할 수 있습니다.
앞의 mysqld 커맨드에서 표시되는 항목 중 일부는
SHOW VARIABLES 출력에 나타나지 않습니다.
이는 해당 항목이 옵션일 뿐 시스템 변수는 아니기 때문입니다.
다음 목록은 가장 일반적인 server 옵션 일부를 보여줍니다. 추가 옵션은 다른 섹션에서 설명됩니다:
보안에 영향을 주는 옵션: Section 8.1.4, “Security-Related mysqld Options and Variables”를 참조하십시오.
SSL 관련 옵션: Command Options for Encrypted Connections을 참조하십시오.
Binary log 제어 옵션: Section 7.4.4, “The Binary Log”을 참조하십시오.
Replication 관련 옵션: Section 19.1.6, “Replication and Binary Logging Options and Variables”을 참조하십시오.
플러그인형 스토리지 엔진과 같은 플러그인을 로딩하기 위한 옵션: Section 7.6.1, “Installing and Uninstalling Plugins”을 참조하십시오.
특정 스토리지 엔진에 특화된 옵션: Section 17.14, “InnoDB Startup Options and System Variables” 및 Section 18.2.1, “MyISAM Startup Options”을 참조하십시오.
일부 옵션은 버퍼 또는 캐시의 크기를 제어합니다. 특정 버퍼의 경우, server는 내부 데이터 구조를 할당해야 할 수 있습니다. 이러한 구조는 일반적으로 버퍼에 할당된 전체 메모리에서 할당되며, 필요한 공간의 양은 플랫폼에 따라 달라질 수 있습니다. 이는 버퍼 크기를 제어하는 옵션에 값을 할당할 때 실제로 사용 가능한 공간의 양이 할당한 값과 다를 수 있음을 의미합니다.
일부 경우에는 사용 가능한 양이 할당한 값보다 작을 수 있습니다. 또한 server가 값을 상향 조정할 수도 있습니다. 예를 들어, 최소 값이 1024인 옵션에 0 값을 할당하면, server는 값을 1024로 설정합니다.
버퍼 크기, 길이, 스택 크기에 대한 값은 별도로 명시되지 않는 한 바이트 단위로 제공됩니다.
일부 옵션은 파일 이름 값을 받습니다.
별도로 명시되지 않는 한,
값이 상대 경로 이름인 경우 기본 파일 위치는 데이터 디렉터리입니다.
위치를 명시적으로 지정하려면 절대 경로 이름을 사용하십시오.
데이터 디렉터리가 /var/mysql/data라고 가정합시다.
파일 값 옵션이 상대 경로 이름으로 지정되면
그 파일은 /var/mysql/data 아래에 위치합니다.
값이 절대 경로 이름인 경우, 위치는 해당 경로 이름이 가리키는 위치입니다.
또한 server 시스템 변수 이름을 옵션으로 사용하여
server 시작 시 시스템 변수 값을 설정할 수 있습니다.
server 시스템 변수에 값을 할당하려면
--var_name=value 형식의 옵션을 사용하십시오.
예를 들어,
--sort_buffer_size=384M은
sort_buffer_size 변수를
384MB 값으로 설정합니다.
변수에 값을 할당할 때, MySQL은 값을 특정 범위 내에 유지하기 위해 값을 자동으로 수정하거나, 허용되는 값이 제한적인 경우 가장 근접한 허용 값으로 조정할 수 있습니다.
SET
구문을 사용하여 런타임에 시스템 변수를 설정할 수 있는
최대 값을 제한하려면, server 시작 시
--maximum-var_name=value 형식의 옵션을 사용하여
이 최대 값을 지정하십시오.
대부분의 시스템 변수 값은 런타임에
SET
구문을 사용하여 변경할 수 있습니다.
Section 15.7.6.1, “SET Syntax for Variable Assignment”을 참조하십시오.
Section 7.1.8, “Server System Variables”에서는 모든 변수에 대한 전체 설명과 server 시작 및 런타임에서 이를 설정하는 방법에 대한 추가 정보를 제공합니다. 시스템 변수 변경에 대한 정보는 Section 7.1.1, “Configuring the Server”를 참조하십시오.
--help, -?| Property | Value |
|---|---|
| Command-Line Format | --help |
짧은 도움말 메시지를 표시하고 종료합니다.
전체 메시지를 보려면
--verbose와
--help 옵션을 모두 사용하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--allow-suspicious-udfs[={OFF |
| Type | Boolean |
| Default Value | OFF |
이 옵션은 메인 함수에 대해 xxx 심벌만을 가지는
로드 가능한 함수를 로드할 수 있는지를 제어합니다.
기본적으로 이 옵션은 OFF이며, 최소한 하나의 보조 심벌을 가진
로드 가능한 함수만 로드할 수 있습니다.
이는 정당한 함수를 포함한 공유 오브젝트 파일 이외의 파일에서
함수를 로드하려는 시도를 방지합니다.
Loadable Function Security Precautions를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --ansi |
MySQL 구문 대신 표준(ANSI) SQL 구문을 사용합니다.
server SQL 모드를 보다 정밀하게 제어하려면
--sql-mode 옵션을 대신 사용하십시오.
Section 1.7, “MySQL Standards Compliance” 및
Section 7.1.11, “Server SQL Modes”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --basedir=dir_name |
| System Variable | basedir |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | Directory name |
| Default Value | parent of mysqld installation directory |
MySQL 설치 디렉터리의 경로입니다.
이 옵션은 basedir 시스템 변수를 설정합니다.
server 실행 파일은 시작 시 자신의 전체 경로 이름을 결정하고,
해당 디렉터리의 상위 디렉터리를 기본
basedir 값으로 사용합니다.
이는 server가 오류 메시지를 포함하는
share 디렉터리와 같은 server 관련 정보를
검색할 때 이 basedir를
사용할 수 있게 해 줍니다.
| Property | Value |
|---|---|
| Command-Line Format | --check-table-functions=value |
| Type | Enumeration |
| Default Value | ABORT |
| Valid Values | WARN<br>ABORT |
server를 업그레이드하는 동안, 테이블 제약 조건 및 기타 표현식에 사용되는
함수(예: DEFAULT 표현식, 파티셔닝 표현식,
가상 컬럼 포함)에 대해 데이터 딕셔너리를 스캔합니다.
함수 동작의 변경으로 인해 새 버전의 server에서 오류가 발생할 수 있으며
이전에는 발생하지 않았을 수 있습니다.
이 경우 해당 테이블을 열 수 없습니다.
이 옵션은 사용된 두 값 중 어느 값을 사용하는지에 따라
이러한 문제를 처리하는 방식을 선택할 수 있게 해 줍니다:
WARN: 열 수 없는 각 테이블에 대해 경고를 로그합니다.
ABORT: 경고를 로그하는 것 외에 업그레이드를 중지합니다.
이것이 기본값입니다.
--log-error-verbosity의 값이 충분히 높으면,
SQL 함수를 포함할 가능성이 있는 표현식만 나열하는
간소화된 테이블 정의를 노트로 로그합니다.
기본 동작은 업그레이드를 중단하여 사용자가 server의 이전 버전을 사용해
문제를 수정한 후 새 버전으로 업그레이드할 수 있게 하는 것입니다.
대화형 모드에서 문제를 보고하면서 업그레이드를 계속하려면
WARN을 사용하십시오.
--chroot=dir_name,
-r dir_name| Property | Value |
|---|---|
| Command-Line Format | --chroot=dir_name |
| Type | Directory name |
시작 시 chroot() 시스템 호출을 사용하여
mysqld server를
닫힌 환경(closed environment)에 넣습니다.
이는 권장되는 보안 조치입니다.
이 옵션을 사용하면
LOAD DATA와
SELECT ... INTO OUTFILE의 사용이 다소 제한됩니다.
| Property | Value |
|---|---|
| Command-Line Format | --console |
| Platform Specific | Windows |
(Windows 전용.) 기본 에러 로그 대상(default error log destination)을 콘솔로 지정합니다. 이는 기본 대상에 자신의 출력 대상을 기반으로 하는 로그 싱크에 영향을 줍니다. Section 7.4.2, “The Error Log”를 참조하십시오. 이 옵션을 사용하면 mysqld는 콘솔 윈도우를 닫지 않습니다.
--console는
--log-error가 함께 주어졌을 때
우선합니다.
| Property | Value |
|---|---|
| Command-Line Format | --core-file |
이 옵션이 사용되면, mysqld가 죽을 때
코어 파일을 기록합니다.
인수가 필요(또는 허용)되지 않습니다.
코어 파일의 이름과 위치는 시스템에 따라 다릅니다.
Linux에서는 core.pid라는 코어 파일이
프로세스의 현재 작업 디렉터리에 기록되는데,
mysqld의 경우 데이터 디렉터리입니다.
_pid_는 server 프로세스의 프로세스 ID를 나타냅니다.
macOS에서는 core.pid라는 코어 파일이
/cores 디렉터리에 기록됩니다.
Solaris에서는 coreadm 커맨드를 사용하여
코어 파일을 기록할 위치와 이름을 지정합니다.
일부 시스템에서는 코어 파일을 얻으려면
mysqld_safe에
--core-file-size 옵션도 지정해야 합니다.
Section 6.3.2, “mysqld_safe — MySQL Server Startup Script”를 참조하십시오.
Solaris와 같은 일부 시스템에서는
--user 옵션도 사용 중인 경우
코어 파일을 얻을 수 없습니다.
추가 제한이나 제약이 있을 수 있습니다. 예를 들어, server를 시작하기 전에 ulimit -c unlimited를 실행해야 할 수도 있습니다. 자세한 내용은 시스템 문서를 참조하십시오.
innodb_buffer_pool_in_core_file 변수는
이를 지원하는 운영 체제에서 코어 파일의 크기를 줄이는 데 사용할 수 있습니다.
자세한 내용은
Section 17.8.3.7, “Excluding or Including Buffer Pool Pages from Core Files”를 참조하십시오.
--daemonize,
-D| Property | Value |
|---|---|
| Command-Line Format | `--daemonize[={OFF |
| Type | Boolean |
| Default Value | OFF |
이 옵션은 server가 전통적인 포킹 데몬으로 동작하도록 하여, 프로세스 제어에 systemd를 사용하는 운영 체제에서도 동작할 수 있게 합니다. 자세한 내용은 Section 2.5.9, “Managing MySQL Server with systemd”를 참조하십시오.
--daemonize는
--initialize 및
--initialize-insecure와
상호 배타적입니다.
server가 --daemonize 옵션을 사용해 시작되고
tty 디바이스에 연결되어 있지 않은 경우,
명시적 로깅 옵션이 없으면 기본 에러 로깅 옵션으로
--log-error=""가 사용되어
에러 출력을 기본 로그 파일로 보냅니다.
-D는
--daemonize의 동의어입니다.
--datadir=dir_name,
-h dir_name| Property | Value |
|---|---|
| Command-Line Format | --datadir=dir_name |
| System Variable | datadir |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | Directory name |
MySQL server 데이터 디렉터리의 경로입니다.
이 옵션은 datadir 시스템 변수를 설정합니다.
해당 변수 설명을 참조하십시오.
--debug[=debug_options],
-# [debug_options]| Property | Value |
|---|---|
| Command-Line Format | --debug[=debug_options] |
| System Variable | debug |
| Scope | Global, Session |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | String |
| Default Value (Unix) | d:t:i:o,/tmp/mysqld.trace |
| Default Value (Windows) | d:t:i:O,\mysqld.trace |
MySQL이
-DWITH_DEBUG=1 CMake 옵션으로
configure되어 있는 경우, 이 옵션을 사용하여
mysqld 동작에 대한 트레이스 파일을 얻을 수 있습니다.
일반적인 debug_options 문자열은
d:t:o,file_name입니다.
기본값은 Unix에서는 d:t:i:o,/tmp/mysqld.trace,
Windows에서는 d:t:i:O,\mysqld.trace입니다.
-DWITH_DEBUG=1로
디버깅 지원을 사용하여 MySQL을 configure하면,
server 시작 시
--debug="d,parser_debug" 옵션을 사용할 수 있습니다.
이는 SQL 구문을 처리하는 데 사용되는 Bison 파서가
파서 트레이스를 server의 표준 에러 출력으로 덤프하게 합니다.
일반적으로 이 출력은 에러 로그에 기록됩니다.
이 옵션은 여러 번 지정될 수 있습니다.
+ 또는 -로 시작하는 값은
이전 값에 더하거나 빼는 방식으로 동작합니다.
예를 들어,
--debug=T --debug=+P는
값을 P:T로 설정합니다.
자세한 내용은 Section 7.9.4, “The DBUG Package”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --debug-sync-timeout[=#] |
| Type | Integer |
테스트 및 디버깅을 위한 Debug Sync 기능을 활성화할지 여부를 제어합니다.
Debug Sync 사용을 위해서는 MySQL이
-DWITH_DEBUG=ON CMake 옵션으로
configure되어야 합니다
(Section 2.8.7, “MySQL Source-Configuration Options” 참조);
그렇지 않으면 이 옵션은 사용할 수 없습니다.
옵션 값은 초 단위 타임아웃입니다.
기본값은 0으로, Debug Sync를 비활성화합니다.
활성화하려면 0보다 큰 값을 지정하십시오.
이 값은 개별 동기화 포인트의 기본 타임아웃이 되기도 합니다.
값 없이 옵션이 주어진 경우 타임아웃은 300초로 설정됩니다.
Debug Sync 기능 및 동기화 포인트 사용 방법에 대한 설명은 MySQL Internals: Test Synchronization를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --default-time-zone=name |
| Type | String |
기본 server 타임존을 설정합니다.
이 옵션은 글로벌
time_zone 시스템 변수를 설정합니다.
이 옵션이 지정되지 않으면, 기본 타임존은
system_time_zone 시스템 변수 값이 주는
시스템 타임존과 동일합니다.
system_time_zone 변수는
time_zone와 다릅니다.
두 변수가 동일한 값을 가질 수도 있지만,
후자는 연결되는 각 클라이언트의 타임존을 초기화하는 데 사용됩니다.
Section 7.1.15, “MySQL Server Time Zone Support”를 참조하십시오.
글로벌 옵션 파일 다음이지만 (Unix에서는) 사용자 옵션 파일 이전에
이 옵션 파일을 읽습니다.
파일이 존재하지 않거나 접근할 수 없으면 에러가 발생합니다.
_file_name_이 절대 경로 이름이 아니면
현재 디렉터리를 기준으로 해석됩니다.
이 옵션을 사용하는 경우 커맨드 라인의 첫 번째 옵션이어야 합니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
지정된 옵션 파일만 읽습니다.
파일이 존재하지 않거나 접근할 수 없으면 에러가 발생합니다.
_file_name_이 절대 경로 이름이 아니면
현재 디렉터리를 기준으로 해석됩니다.
예외: --defaults-file를 사용하더라도,
mysqld는
mysqld-auto.cnf를 읽습니다.
참고
이 옵션을 사용하는 경우 커맨드 라인의 첫 번째 옵션이어야 합니다.
단, server가
--defaults-file과
--install
(또는 --install-manual) 옵션으로
시작되는 경우에는
--install
(또는 --install-manual)이
첫 번째여야 합니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
일반적인 옵션 그룹뿐만 아니라 이름 끝에
str 접미사가 붙은 그룹도 읽습니다.
예를 들어,
mysqld는 일반적으로
[mysqld] 그룹을 읽습니다.
이 옵션이
--defaults-group-suffix=_other로 주어진 경우,
mysqld는
[mysqld_other] 그룹도 읽습니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --early-plugin-load=plugin_list |
| Deprecated | Yes |
| Type | String |
| Default Value | empty string |
참고
이 옵션은 deprecated이며, 이 옵션으로 server를 시작하면 경고가 발생합니다. 이는 모든 MySQL 플러그인을 MySQL 컴포넌트로 대체하기 위한 지속적인 작업의 일부입니다. 아직 하지 않았다면, 사용 중인 플러그인에서 가능한 경우 동등한 컴포넌트로 마이그레이션해야 합니다. 이는 특히 현재 모두 deprecated된 keyring 플러그인에 적용됩니다. 자세한 내용은 Section 8.4.5.1, “Keyring Components Versus Keyring Plugins”을 참조하십시오.
이 옵션은 server가 필수 내장 플러그인을 로딩하고
스토리지 엔진을 초기화하기 전에 어떤 플러그인을 로드할지를 지정합니다.
초기 로딩은 PLUGIN_OPT_ALLOW_EARLY로 컴파일된
플러그인에만 지원됩니다.
여러 개의 --early-plugin-load 옵션이 주어지면
마지막 하나만 적용됩니다.
옵션 값은
plugin_library 값과
name=plugin_library
값 또는 이 둘의 조합으로 구성된
세미콜론으로 구분된 목록입니다.
각 _plugin_library_는 플러그인 코드를 포함하는 라이브러리 파일의 이름이며,
각 _name_은 로드할 플러그인의 이름입니다.
플러그인 이름 없이 플러그인 라이브러리만 지정하면,
server는 해당 라이브러리의 모든 플러그인을 로드합니다.
플러그인 이름이 앞에 있으면, server는 라이브러리에서 지정된 플러그인만 로드합니다.
server는 plugin_dir 시스템 변수에 지정된
디렉터리에서 플러그인 라이브러리 파일을 찾습니다.
예를 들어 myplug1 및 myplug2라는 플러그인이
myplug1.so 및 myplug2.so 플러그인 라이브러리 파일에
포함되어 있는 경우, 다음 옵션을 사용하여 초기 플러그인 로드를 수행합니다:
mysqld --early-plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"
일부 커맨드 인터프리터는 세미콜론(;)을 특별한 문자로 해석하므로,
인수 값은 따옴표로 둘러싸야 합니다.
(예: Unix 셸은 이를 커맨드 종결자로 취급합니다.)
각 지정된 플러그인은 단일 mysqld 실행에 대해서만
초기 로드됩니다.
재시작 후에는
--early-plugin-load를
다시 사용하지 않으면 플러그인이 초기 로드되지 않습니다.
server가
--initialize 또는
--initialize-insecure로
실행되는 경우,
--early-plugin-load로 지정된 플러그인은
로드되지 않습니다.
server가
--help와 함께 실행되는 경우,
--early-plugin-load로 지정된 플러그인은
로드되지만 초기화되지는 않습니다.
이 동작은 도움말 메시지에 플러그인 옵션이 표시되도록 보장하기 위한 것입니다.
InnoDB 테이블스페이스 암호화는
암호화 키 관리를 위해 MySQL Keyring에 의존하며,
사용할 keyring 플러그인은 암호화된 테이블에 대한
InnoDB 복구를 가능하게 하기 위해
스토리지 엔진 초기화 전에 로드되어야 합니다.
예를 들어 시작 시 keyring_okv 플러그인을 로드하려는 관리자는
--early-plugin-load를
적절한 옵션 값(Unix 및 Unix-like 시스템에서는 keyring_okv.so,
Windows에서는 keyring_okv.dll 등)과 함께 사용해야 합니다.
InnoDB 테이블스페이스 암호화에 대한 정보는
Section 17.13, “InnoDB Data-at-Rest Encryption”을 참조하십시오.
플러그인 로딩에 대한 일반 정보는
Section 7.6.1, “Installing and Uninstalling Plugins”을 참조하십시오.
참고
MySQL Keyring의 경우, keystore가 keyring 플러그인으로 관리되는 경우에만 이 옵션이 사용됩니다. keystore 관리에 플러그인 대신 keyring 컴포넌트를 사용하는 경우, 매니페스트 파일을 사용하여 컴포넌트 로딩을 지정해야 합니다. Section 8.4.5.2, “Keyring Component Installation”을 참조하십시오.
--exit-info[=flags],
-T [flags]| Property | Value |
|---|---|
| Command-Line Format | --exit-info[=flags] |
| Type | Integer |
이 옵션은 mysqld server를 디버깅하는 데 사용할 수 있는 여러 플래그의 비트마스크입니다. 정확히 무엇을 하는지 알지 못한다면 이 옵션을 사용하지 마십시오!
| Property | Value |
|---|---|
| Command-Line Format | `--external-locking[={OFF |
| Type | Boolean |
| Default Value | OFF |
기본적으로 비활성화되어 있는 외부 락(시스템 락)을 활성화합니다.
lockd가 완전하게 동작하지 않는 (Linux와 같은) 시스템에서
이 옵션을 사용하면, mysqld가 데드락에 빠지기 쉽습니다.
외부 락을 명시적으로 비활성화하려면
--skip-external-locking을 사용하십시오.
외부 락은
MyISAM 테이블 접근에만 영향을 줍니다.
사용할 수 있는 조건과 사용할 수 없는 조건을 포함한 자세한 내용은
Section 10.11.5, “External Locking”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--flush[={OFF |
| System Variable | flush |
| Scope | Global |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | Boolean |
| Default Value | OFF |
각 SQL 구문 이후에 모든 변경 사항을 디스크에 플러시(동기화)합니다. 일반적으로 MySQL은 각 SQL 구문 이후에 모든 변경 사항을 디스크에 기록하고, 디스크 동기화 작업은 운영 체제가 처리하도록 합니다. Section B.3.3.3, “What to Do If MySQL Keeps Crashing”를 참조하십시오.
참고
--flush가 지정된 경우,
flush_time의 값은 중요하지 않으며,
flush_time에 대한 변경은
플러시 동작에 영향을 미치지 않습니다.
| Property | Value |
|---|---|
| Command-Line Format | `--gdb[={OFF |
| Type | Boolean |
| Default Value | OFF |
SIGINT에 대한 인터럽트 핸들러를 설치합니다
(mysqld를 중지하고 ^C로 브레이크포인트를 설정하는 데 필요).
또한 스택 트레이스 및 코어 파일 처리를 비활성화합니다.
Section 7.9.1.4, “Debugging mysqld under gdb”를 참조하십시오.
Windows에서는 이 옵션이 또한
RESTART 구문을 구현하는 데 사용되는
포킹을 억제합니다.
포킹은 하나의 프로세스가 모니터로, 다른 하나가 server로 동작하도록 하지만,
디버깅을 위해 attach해야 할 server 프로세스를 결정하기 어렵게 만듭니다.
따라서 server를
--gdb와 함께 시작하면
포킹이 억제됩니다.
이 옵션으로 시작된 server에서
RESTART는
단순히 종료하며 재시작하지 않습니다.
non-debug 환경에서는,
--no-monitor를 사용하여
모니터 프로세스 포킹을 억제할 수 있습니다.
--initialize,
-I| Property | Value |
|---|---|
| Command-Line Format | `--initialize[={OFF |
| Type | Boolean |
| Default Value | OFF |
이 옵션은 데이터 디렉터리를 생성하고
mysql 시스템 스키마의 테이블을 채워서
MySQL 설치를 초기화하는 데 사용됩니다.
자세한 내용은
Section 2.9.1, “Initializing the Data Directory”를 참조하십시오.
이 옵션은 MySQL server의 다른 여러 시작 옵션의 효과를 제한하거나, 이들과 호환되지 않습니다. 가장 일반적인 문제를 아래에 나열합니다:
--initialize로 데이터 디렉터리를 초기화할 때는,
디렉터리 위치를 설정하기 위한
--datadir,
--basedir 같은 옵션과,
필요한 경우 --user 외에는
추가 옵션을 지정하지 않을 것을 강력히 권장합니다.
실행 중인 MySQL server에 대한 옵션은
초기화가 완료되고 mysqld가 종료된 후
server를 시작할 때 지정할 수 있습니다.
이는 --initialize 대신
--initialize-insecure를 사용할 때도 적용됩니다.
server가 --initialize와 함께 시작되면,
init_file 시스템 변수에 의해 지정된
파일에 허용되는 구문이 제한되어
일부 기능을 사용할 수 없습니다.
자세한 내용은 해당 변수를 참조하십시오.
또한
disabled_storage_engines 시스템 변수는
아무런 효과가 없습니다.
--ndbcluster 옵션은
--initialize와 함께 사용되면 무시됩니다.
--initialize는
--bootstrap 및
--daemonize와
상호 배타적입니다.
앞의 목록에 있는 항목은
--initialize-insecure 옵션을 사용하여
server를 초기화하는 경우에도 적용됩니다.
| Property | Value |
|---|---|
| Command-Line Format | `--initialize-insecure[={OFF |
| Type | Boolean |
| Default Value | OFF |
이 옵션은 데이터 디렉터리를 생성하고
mysql 시스템 스키마의 테이블을 채워서
MySQL 설치를 초기화하는 데 사용됩니다.
이 옵션은
--initialize를 의미하며,
동일한 제한과 제약이 적용됩니다.
자세한 내용은 해당 옵션 설명과
Section 2.9.1, “Initializing the Data Directory”를 참조하십시오.
주의
이 옵션은 패스워드가 비어 있는 MySQL root 사용자를 생성합니다.
이는 안전하지 않습니다.
따라서, 이 패스워드를 수동으로 설정하지 않고는
프로덕션 환경에서 사용하지 마십시오.
이를 수행하는 방법에 대한 정보는
Post-Initialization root Password Assignment를 참조하십시오.
--innodb-xxxInnoDB 스토리지 엔진에 대한 옵션을 설정합니다.
InnoDB 옵션은
Section 17.14, “InnoDB Startup Options and System Variables”에 나열되어 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --install [service_name] |
| Platform Specific | Windows |
(Windows 전용) server를 Windows 서비스로 설치하여
Windows 시작 시 자동으로 시작되도록 합니다.
service_name 값을 지정하지 않으면 기본 서비스 이름은
MySQL입니다.
자세한 내용은
Section 2.3.3.8, “Starting MySQL as a Windows Service”를 참조하십시오.
참고
server가
--defaults-file과
--install 옵션으로 시작되는 경우,
--install이 먼저 와야 합니다.
| Property | Value |
|---|---|
| Command-Line Format | --install-manual [service_name] |
| Platform Specific | Windows |
(Windows 전용) server를 Windows 서비스로 설치하지만,
수동으로 시작해야 합니다.
Windows 시작 시 자동으로 시작되지 않습니다.
service_name 값을 지정하지 않으면 기본 서비스 이름은
MySQL입니다.
자세한 내용은
Section 2.3.3.8, “Starting MySQL as a Windows Service”를 참조하십시오.
참고
server가
--defaults-file과
--install-manual 옵션으로
시작되는 경우,
--install-manual이
먼저 와야 합니다.
| Property | Value |
|---|---|
| Command-Line Format | `--large-pages[={OFF |
| System Variable | large_pages |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Platform Specific | Linux |
| Type | Boolean |
| Default Value | OFF |
일부 하드웨어/운영 체제 아키텍처는 기본값(일반적으로 4KB)보다 큰 메모리 페이지를 지원합니다. 이 지원의 실제 구현은 하부 하드웨어 및 운영 체제에 따라 달라집니다. 메모리 접근을 많이 수행하는 애플리케이션은 Translation Lookaside Buffer(TLB) miss 감소로 인해 큰 페이지를 사용함으로써 성능 향상을 얻을 수 있습니다.
MySQL은 Linux의 큰 페이지 지원 구현(HugeTLB라고 함)을 지원합니다.
Section 10.12.3.3, “Enabling Large Page Support”를 참조하십시오.
Solaris에서 큰 페이지 지원에 대해서는
--super-large-pages 옵션 설명을 참조하십시오.
--large-pages는
기본적으로 비활성화되어 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --lc-messages=name |
| System Variable | lc_messages |
| Scope | Global, Session |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | String |
| Default Value | en_US |
에러 메시지에 사용할 로케일입니다.
기본값은 en_US입니다.
server는 인수를 언어 이름으로 변환하고,
이를 --lc-messages-dir 값과
결합하여 에러 메시지 파일 위치를 생성합니다.
Section 12.12, “Setting the Error Message Language”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --lc-messages-dir=dir_name |
| System Variable | lc_messages_dir |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | Directory name |
에러 메시지가 위치한 디렉터리입니다.
server는 이 값을
--lc-messages 값과 함께 사용하여
에러 메시지 파일 위치를 생성합니다.
Section 12.12, “Setting the Error Message Language”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --local-service |
(Windows 전용) 서비스 이름 뒤에 오는
--local-service 옵션은
server가 제한된 시스템 권한을 가진
LocalService Windows 계정을 사용하여 실행되도록 합니다.
서비스 이름 뒤에
--defaults-file과
--local-service가 모두 주어진 경우,
이들의 순서는 상관없습니다.
Section 2.3.3.8, “Starting MySQL as a Windows Service”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --log-diagnostic[=file_name] |
| System Variable | log_diagnostic |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | File name |
server가
--log-diagnostic-enable와 함께 시작된 경우,
진단 로그 파일의 이름을 이 값에 .diag 접미사를 붙인 값으로 설정합니다.
그렇지 않으면 아무런 효과가 없습니다.
기본 진단 로그 파일 이름은
host_name.diag입니다.
내부 용도로만 사용됩니다.
server가
-DWITH_LOG_DIAGNOSTIC로
빌드된 경우에만 사용할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | `--log-diagnostic-name[=true |
| System Variable | log_diagnostic_enable |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | Boolean |
| Default Value | false |
진단 로깅을 활성화합니다.
내부 용도로만 사용됩니다.
server가
-DWITH_LOG_DIAGNOSTIC로
빌드된 경우에만 사용할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --log-error[=file_name] |
| System Variable | log_error |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | File name |
기본 에러 로그 대상을 지정한 파일로 설정합니다. 이는 기본 대상을 기반으로 자체 출력 대상을 결정하는 로그 싱크에 영향을 미칩니다. Section 7.4.2, “The Error Log”를 참조하십시오.
옵션에서 파일 이름을 지정하지 않으면,
Unix 및 Unix-like 시스템에서 기본 에러 로그 대상은
데이터 디렉터리의 host_name.err 파일입니다.
Windows에서 기본 대상은 동일하지만,
--pid-file 옵션이 지정된 경우에는 예외입니다.
이 경우 파일 이름은 데이터 디렉터리에 있는
PID 파일 기본 이름에 .err 접미사를 붙인 값입니다.
옵션에서 파일 이름을 지정하면,
기본 대상은 해당 파일(이름에 접미사가 없으면 .err 접미사가 추가됨)이며,
절대 경로 이름을 지정하지 않는 한 데이터 디렉터리 아래에 위치합니다.
에러 로그 출력을 에러 로그 파일로 리다이렉트할 수 없으면, 에러가 발생하고 시작이 실패합니다.
Windows에서
--console는
--log-error보다 우선합니다.
이 경우 기본 에러 로그 대상은 파일이 아니라 콘솔이 됩니다.
| Property | Value |
|---|---|
| Command-Line Format | --log-isam[=file_name] |
| Type | File name |
모든 MyISAM 변경 사항을 이 파일에 로그합니다
(MyISAM 디버깅에만 사용).
| Property | Value |
|---|---|
| Command-Line Format | `--log-raw[={OFF |
| System Variable | log_raw |
| Scope | Global |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | Boolean |
| Default Value | OFF |
일부 구문에 포함된 패스워드는
general query log, slow query log, binary log에 기록될 때
server에 의해 평문으로 문자 그대로 나타나지 않도록 재작성됩니다.
--log-raw 옵션을 사용하여
server를 시작하면, general query log에 대해서는 이러한 패스워드 재작성을 억제할 수 있습니다.
이 옵션은 server가 수신한 구문의 정확한 텍스트를 확인해야 하는
진단 목적으로 유용할 수 있지만, 보안상의 이유로
프로덕션 환경에서는 권장되지 않습니다.
쿼리 재작성 플러그인이 설치되어 있는 경우,
--log-raw 옵션은
구문 로깅에 다음과 같이 영향을 미칩니다:
--log-raw 없이:
server는 쿼리 재작성 플러그인이 반환하는 구문을 로그합니다.
이는 수신된 구문과 다를 수 있습니다.
--log-raw를 사용하면:
server는 수신된 원본 구문을 로그합니다.
자세한 내용은 Section 8.1.2.3, “Passwords and Logging”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--log-short-format[={OFF |
| Type | Boolean |
| Default Value | OFF |
slow query log가 활성화된 경우, slow query log에 기록되는 정보를 줄입니다.
| Property | Value |
|---|---|
| Command-Line Format | --log-tc=file_name |
| Type | File name |
| Default Value | tc.log |
메모리 맵 방식의 트랜잭션 코디네이터 로그 파일의 이름입니다
(binary log가 비활성화된 상태에서 여러 스토리지 엔진에 영향을 미치는
XA 트랜잭션에 사용).
기본 이름은 tc.log입니다.
전체 경로 이름으로 지정되지 않으면, 이 파일은 데이터 디렉터리 아래에 생성됩니다.
이 옵션은 사용되지 않습니다.
| Property | Value |
|---|---|
| Command-Line Format | --log-tc-size=# |
| Type | Integer |
| Default Value | 6 * page size |
| Minimum Value | 6 * page size |
| Maximum Value (64-bit platforms) | 18446744073709551615 |
| Maximum Value (32-bit platforms) | 4294967295 |
메모리 맵 방식의 트랜잭션 코디네이터 로그의 크기(바이트 단위)입니다. 기본값과 최소값은 페이지 크기의 6배이며, 값은 페이지 크기의 배수여야 합니다.
| Property | Value |
|---|---|
| Command-Line Format | `--memlock[={OFF |
| Type | Boolean |
| Default Value | OFF |
mysqld 프로세스를 메모리에 락합니다. 이 옵션은 운영 체제가 mysqld를 디스크로 스왑하는 문제가 있는 경우 도움이 될 수 있습니다.
--memlock는
mlockall() 시스템 호출을 지원하는 시스템에서 동작합니다.
여기에는 Solaris, 2.4 이상 커널을 사용하는 대부분의 Linux 배포판 및
기타 Unix 시스템이 포함됩니다.
Linux 시스템에서
mlockall()(및 해당 옵션 지원 여부)를 확인하려면
시스템 mman.h 파일에 정의되어 있는지 확인하십시오. 예:
$> grep mlockall /usr/include/sys/mman.h
mlockall()이 지원되면, 이전 커맨드의 출력에서
다음과 비슷한 내용을 볼 수 있습니다:
extern int mlockall (int __flags) __THROW;
주의
이 옵션을 사용하려면 server를 root로 실행해야 할 수도 있습니다.
이는 보안상의 이유로 일반적으로 좋지 않은 방법입니다.
Section 8.1.5, “How to Run MySQL as a Normal User”를 참조하십시오.
Linux 및 기타 일부 시스템에서는
limits.conf 파일을 변경하여
server를 root로 실행할 필요를 피할 수 있습니다.
memlock 제한에 대한 메모는
Section 10.12.3.3, “Enabling Large Page Support”를 참조하십시오.
mlockall() 시스템 호출을 지원하지 않는 시스템에서
이 옵션을 사용해서는 안 됩니다.
그렇게 하면 mysqld가
시작하자마자 종료될 가능성이 매우 높습니다.
| Property | Value |
|---|---|
| Command-Line Format | --myisam-block-size=# |
| Type | Integer |
| Default Value | 1024 |
| Minimum Value | 1024 |
| Maximum Value | 16384 |
MyISAM 인덱스 페이지에 사용할 블록 크기입니다.
어떤 옵션 파일도 읽지 않습니다.
프로그램 시작이 옵션 파일에서 읽은 알 수 없는 옵션 때문에 실패하는 경우,
--no-defaults를 사용하여
옵션 파일이 읽히지 않도록 할 수 있습니다.
이 옵션을 사용하는 경우 커맨드 라인의 첫 번째 옵션이어야 합니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--no-monitor[={OFF |
| Platform Specific | Windows |
| Type | Boolean |
| Default Value | OFF |
(Windows 전용.) 이 옵션은
RESTART 구문을 구현하기 위해 사용되는
포킹을 억제합니다.
포킹은 하나의 프로세스가 모니터로, 다른 하나가 server로 동작하게 합니다.
이 옵션으로 시작된 server에서는
RESTART가
단순히 종료하며 재시작하지 않습니다.
--performance-schema-xxxPerformance Schema 옵션을 설정합니다. 자세한 내용은 Section 29.14, “Performance Schema Command Options”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --plugin-load=plugin_list |
| Type | String |
이 옵션은 server가 시작 시 지정된 플러그인을 로드하도록 합니다.
여러 개의
--plugin-load 옵션이 주어지면
마지막 하나만 적용됩니다.
추가로 로드할 플러그인은
--plugin-load-add 옵션을 사용하여 지정할 수 있습니다.
옵션 값은
plugin_library 및
name= plugin_library
값으로 구성된 세미콜론으로 구분된 목록입니다.
각 _plugin_library_는 플러그인 코드를 포함하는 라이브러리 파일 이름이며,
각 _name_은 로드할 플러그인의 이름입니다.
플러그인 이름 없이 플러그인 라이브러리만 지정하면
server는 라이브러리의 모든 플러그인을 로드합니다.
플러그인 이름이 앞에 있으면, server는 라이브러리에서 해당 플러그인만 로드합니다.
server는 plugin_dir 시스템 변수에 지정된 디렉터리에서
플러그인 라이브러리 파일을 찾습니다.
예를 들어, myplug1 및 myplug2라는 플러그인이
myplug1.so 및 myplug2.so 플러그인 라이브러리 파일에 포함되어 있는 경우,
다음 옵션을 사용하여 초기 플러그인 로드를 수행합니다:
mysqld --plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"
일부 커맨드 인터프리터는 세미콜론(;)을 특별한 문자로 해석하므로,
인수 값은 따옴표로 둘러싸야 합니다.
(예: Unix 셸은 이를 커맨드 종결자로 취급합니다.)
각 지정된 플러그인은 단일 mysqld 실행에 대해서만 로드됩니다.
재시작 후에는
--plugin-load를
다시 사용하지 않으면 플러그인이 로드되지 않습니다.
이는 플러그인을 일반 server 시작마다 로드하도록
mysql.plugins 테이블에 엔트리를 추가하는
INSTALL PLUGIN과는 대조적입니다.
일반 시작 시퀀스 동안, server는
mysql.plugins 시스템 테이블을 읽어 로드할 플러그인을 결정합니다.
server가
--skip-grant-tables 옵션으로 시작되면,
mysql.plugins 테이블에 등록된 플러그인은 로드되지 않으며 사용할 수 없습니다.
--plugin-load는
--skip-grant-tables를 사용하는 경우에도
플러그인을 로드할 수 있게 해 줍니다.
또한, 런타임에 로드할 수 없는 플러그인을
시작 시 로드할 수 있게 합니다.
이 옵션은 해당하는 시스템 변수를 설정하지 않습니다.
SHOW PLUGINS 출력은
로드된 플러그인에 대한 정보를 제공합니다.
더 자세한 정보는 Information Schema의
PLUGINS 테이블에서 찾을 수 있습니다.
Section 7.6.2, “Obtaining Server Plugin Information”를 참조하십시오.
플러그인 로딩에 대한 추가 정보는 Section 7.6.1, “Installing and Uninstalling Plugins”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --plugin-load-add=plugin_list |
| Type | String |
이 옵션은
--plugin-load 옵션을 보완합니다.
--plugin-load-add는
시작 시 로드할 플러그인 집합에 플러그인을 추가합니다.
인수 형식은
--plugin-load와 동일합니다.
--plugin-load-add를 사용하면,
하나의 장황한 긴
--plugin-load 인수 대신
여러 플러그인 집합을 분리하여 지정할 수 있습니다.
--plugin-load-add는
--plugin-load가 없는 경우에도
사용될 수 있지만,
--plugin-load보다 앞에 나타나는
--plugin-load-add는
효과가 없습니다.
이는
--plugin-load가
로드할 플러그인 집합을 초기화하기 때문입니다.
즉, 다음 옵션:
--plugin-load=x --plugin-load-add=y
은 다음 옵션과 동일합니다:
--plugin-load="x;y"
하지만 다음 옵션:
--plugin-load-add=y --plugin-load=x
은 다음 옵션과 동일합니다:
--plugin-load=x
이 옵션은 해당하는 시스템 변수를 설정하지 않습니다.
SHOW PLUGINS 출력은
로드된 플러그인에 대한 정보를 제공합니다.
더 자세한 정보는 Information Schema의
PLUGINS 테이블에서 찾을 수 있습니다.
Section 7.6.2, “Obtaining Server Plugin Information”를 참조하십시오.
플러그인 로딩에 대한 추가 정보는 Section 7.6.1, “Installing and Uninstalling Plugins”을 참조하십시오.
server 플러그인에 관련된 옵션을 지정합니다.
예를 들어 많은 스토리지 엔진이 플러그인으로 빌드될 수 있으며,
이러한 엔진에 대한 옵션은 --plugin 접두사로 지정할 수 있습니다.
따라서 InnoDB에 대한
--innodb-file-per-table 옵션은
--plugin-innodb-file-per-table로
지정할 수 있습니다.
enable/disable 가능한 boolean 옵션의 경우,
--skip 접두사 및 기타 대체 형식도 지원됩니다
(Section 6.2.2.4, “Program Option Modifiers” 참조).
예를 들어
--skip-plugin-innodb-file-per-table는
innodb-file-per-table를 비활성화합니다.
--plugin 접두사의 근거는
내장 server 옵션과 이름 충돌이 있는 경우
플러그인 옵션을 명확하게 지정할 수 있게 하기 위함입니다.
예를 들어 플러그인 작성자가 플러그인 이름을 “sql”로 지정하고
“mode” 옵션을 구현했다고 가정해 봅시다.
이 옵션 이름은
--sql-mode가 될 수 있으며,
이는 동일한 이름의 내장 옵션과 충돌합니다.
이러한 경우, 충돌하는 이름에 대한 참조는
내장 옵션이 우선합니다.
이 모호성을 피하기 위해,
사용자는 플러그인 옵션을 --plugin-sql-mode로 지정할 수 있습니다.
모호성을 피하기 위해 플러그인 옵션에는
--plugin 접두사를 사용하는 것이 권장됩니다.
--port=port_num,
-P port_num| Property | Value |
|---|---|
| Command-Line Format | --port=port_num |
| System Variable | port |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | Integer |
| Default Value | 3306 |
| Minimum Value | 0 |
| Maximum Value | 65535 |
TCP/IP 연결을 수신할 때 사용할 포트 번호입니다.
Unix 및 Unix-like 시스템에서,
server가 root 운영 체제 사용자에 의해 시작되지 않은 경우,
포트 번호는 1024 이상이어야 합니다.
이 옵션을 0으로 설정하면 기본값이 사용됩니다.
| Property | Value |
|---|---|
| Command-Line Format | --port-open-timeout=# |
| Type | Integer |
| Default Value | 0 |
일부 시스템에서 server를 중지하면 TCP/IP 포트가 즉시 사용 가능해지지 않을 수 있습니다. server를 곧바로 다시 시작하는 경우, 포트를 다시 열려는 시도가 실패할 수 있습니다. 이 옵션은 포트를 열 수 없는 경우, server가 TCP/IP 포트가 free가 될 때까지 몇 초 동안 기다릴지를 지정합니다. 기본값은 기다리지 않는 것입니다.
프로그램 이름과 옵션 파일에서 얻은 모든 옵션을 출력합니다.
패스워드 값은 마스킹 처리됩니다.
이 옵션을 사용하는 경우 커맨드 라인의 첫 번째 옵션이어야 하지만,
--defaults-file 또는
--defaults-extra-file 바로 뒤에서 사용하는 것은 허용됩니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --remove [service_name] |
| Platform Specific | Windows |
(Windows 전용) MySQL Windows 서비스를 제거합니다.
service_name 값을 지정하지 않으면 기본 서비스 이름은
MySQL입니다.
자세한 내용은
Section 2.3.3.8, “Starting MySQL as a Windows Service”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--safe-user-create[={OFF |
| Deprecated | Yes |
| Type | Boolean |
| Default Value | OFF |
이 옵션이 활성화된 경우,
사용자는 INSERT 권한을
mysql.user 시스템 테이블 또는 그 테이블의 임의의 컬럼에 대해
가지지 않는 한,
GRANT 구문을 사용해
새 MySQL 사용자를 생성할 수 없습니다.
사용자가 자신이 grant할 수 있는 권한을 가진 새 사용자를 생성할 수 있게 하려면,
다음 권한을 부여해야 합니다:
GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';
이렇게 하면 사용자가 권한 컬럼을 직접 변경할 수 없으며,
반드시 GRANT 구문을 사용하여
다른 사용자에게 권한을 부여해야 합니다.
| Property | Value |
|---|---|
| Command-Line Format | `--skip-grant-tables[={OFF |
| Type | Boolean |
| Default Value | OFF |
이 옵션은 server 시작 시퀀스에 다음과 같은 영향을 줍니다:
--skip-grant-tables는
server가 mysql 시스템 스키마의
grant 테이블을 읽지 않게 하여,
권한 시스템을 전혀 사용하지 않고 시작되도록 합니다.
이는 server에 접근할 수 있는 누구든지
모든 데이터베이스에 대한 무제한 접근 권한을 가지게 함을 의미합니다.
--skip-grant-tables로
server를 시작하면 인증 체크가 비활성화되므로,
server는 또한
skip_networking을 활성화하여
원격 연결을 비활성화합니다.
--skip-grant-tables로
시작된 server가 런타임에 grant 테이블을 로드하도록 하려면,
권한 플러시 작업을 수행해야 합니다.
이는 다음과 같은 방식으로 수행할 수 있습니다:
server에 연결한 후 MySQL
FLUSH PRIVILEGES 구문을 실행합니다.
커맨드 라인에서 mysqladmin flush-privileges 또는 mysqladmin reload 커맨드를 실행합니다.
권한 플러시는 시작 이후 수행된 다른 작업의 결과로 암묵적으로 발생할 수도 있으며, 이로 인해 server가 grant 테이블을 사용하기 시작합니다. 예를 들어, server가 시작 시퀀스 동안 업그레이드를 수행하는 경우 권한을 플러시합니다.
--skip-grant-tables는
실패한 로그인 추적 및 임시 계정 잠금을 비활성화합니다.
이러한 기능은 grant 테이블에 의존하기 때문입니다.
Section 8.2.15, “Password Management”를 참조하십시오.
--skip-grant-tables는
데이터 딕셔너리 또는 mysql 시스템 스키마에
등록된 다른 오브젝트의 로딩을 차단합니다:
events 데이터 딕셔너리 테이블에 등록된,
CREATE EVENT를 사용해 설치된
스케줄링된 이벤트.
mysql.plugin 시스템 테이블에 등록된,
INSTALL PLUGIN을 사용해 설치된 플러그인.
--skip-grant-tables를
사용하는 경우에도 플러그인을 로드하려면
--plugin-load 또는
--plugin-load-add 옵션을 사용하십시오.
mysql.func 시스템 테이블에 등록된,
CREATE FUNCTION을 사용해 설치된
로드 가능한 함수.
--skip-grant-tables는
시작 동안 컴포넌트 로딩을
억제하지 않습니다.
--skip-grant-tables는
disabled_storage_engines 시스템 변수가
아무런 효과를 가지지 않게 합니다.
| Property | Value |
|---|---|
| Command-Line Format | --skip-new |
| Deprecated | Yes |
이 옵션은 (과거에 새로운 것으로 간주되던) 새로운, 잠재적으로 안전하지 않은
동작을 비활성화합니다.
이는 다음과 같은 설정을 초래합니다:
delay_key_write=OFF,
concurrent_insert=NEVER,
automatic_sp_privileges=OFF.
또한
OPTIMIZE TABLE이
해당 구문을 지원하지 않는 스토리지 엔진에 대해
ALTER TABLE로
매핑되도록 합니다.
이 옵션은 deprecated되었으며, 향후 릴리스에서 제거될 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --skip-show-database |
| System Variable | skip_show_database |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | Boolean |
| Default Value | OFF |
이 옵션은
SHOW DATABASES 구문을
사용할 수 있는 사용자를 제어하는
skip_show_database 시스템 변수를 설정합니다.
Section 7.1.8, “Server System Variables”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --skip-stack-trace |
스택 트레이스를 기록하지 않습니다. 이 옵션은 디버거 아래에서 mysqld를 실행할 때 유용합니다. 일부 시스템에서는 코어 파일을 얻기 위해서도 이 옵션을 사용해야 합니다. Section 7.9, “Debugging MySQL”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --slow-start-timeout=# |
| Type | Integer |
| Default Value | 15000 |
이 옵션은 Windows 서비스 제어 매니저의 서비스 시작 타임아웃을 제어합니다. 값은 시작 중에 서비스 제어 매니저가 Windows 서비스를 kill하려고 시도하기 전에 기다리는 최대 시간(밀리초)입니다. 기본값은 15000(15초)입니다. MySQL 서비스가 시작하는 데 너무 오래 걸리는 경우, 이 값을 늘려야 할 수 있습니다. 0 값은 타임아웃이 없음을 의미합니다.
| Property | Value |
|---|---|
| Command-Line Format | `--socket={file_name |
| System Variable | socket |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | String |
| Default Value (Windows) | MySQL |
| Default Value (Other) | /tmp/mysql.sock |
Unix에서 이 옵션은 로컬 연결을 수신할 때 사용할
Unix 소켓 파일을 지정합니다.
기본값은 /tmp/mysql.sock입니다.
이 옵션이 주어지면, server는 절대 경로 이름을 지정하지 않는 한
데이터 디렉터리에서 해당 파일을 생성합니다.
Windows에서 이 옵션은
이름 있는 파이프를 사용하는 로컬 연결을 수신할 때 사용할
파이프 이름을 지정합니다.
기본값은 MySQL입니다(대소문자 구분 없음).
| Property | Value |
|---|---|
| Command-Line Format | --sql-mode=name |
| System Variable | sql_mode |
| Scope | Global, Session |
| Dynamic | Yes |
SET_VAR Hint Applies | Yes |
| Type | Set |
| Default Value | ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION |
| Valid Values | ALLOW_INVALID_DATES<br>ANSI_QUOTES<br>ERROR_FOR_DIVISION_BY_ZERO<br>HIGH_NOT_PRECEDENCE<br>IGNORE_SPACE<br>NO_AUTO_VALUE_ON_ZERO<br>NO_BACKSLASH_ESCAPES<br>NO_DIR_IN_CREATE<br>NO_ENGINE_SUBSTITUTION<br>NO_UNSIGNED_SUBTRACTION<br>NO_ZERO_DATE<br>NO_ZERO_IN_DATE<br>ONLY_FULL_GROUP_BY<br>PAD_CHAR_TO_FULL_LENGTH<br>PIPES_AS_CONCAT<br>REAL_AS_FLOAT<br>STRICT_ALL_TABLES<br>STRICT_TRANS_TABLES<br>TIME_TRUNCATE_FRACTIONAL |
SQL 모드를 설정합니다. Section 7.1.11, “Server SQL Modes”를 참조하십시오.
참고
MySQL 설치 프로그램은 설치 과정에서 SQL 모드를 설정할 수 있습니다.
SQL 모드가 기본값 또는 예상과 다르면, server가 시작 시 읽는 옵션 파일에서 설정이 존재하는지 확인하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --standalone |
| Platform Specific | Windows |
Windows에서만 사용 가능하며, MySQL server가 서비스로 동작하지 않도록 지시합니다.
| Property | Value |
|---|---|
| Command-Line Format | `--super-large-pages[={OFF |
| Platform Specific | Solaris |
| Type | Boolean |
| Default Value | OFF |
MySQL에서 큰 페이지의 표준 사용은
최대 4MB까지 지원되는 가장 큰 페이지 크기 사용을 시도합니다.
Solaris에서는 “super large pages” 기능을 통해
최대 256MB까지의 페이지 사용을 허용합니다.
이 기능은 최신 SPARC 플랫폼에서 사용할 수 있습니다.
--super-large-pages 또는
--skip-super-large-pages 옵션을 사용하여
이 기능을 enable 또는 disable할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | `--symbolic-links[={OFF |
| Deprecated | Yes |
| Type | Boolean |
| Default Value | OFF |
심볼릭 링크 지원을 enable 또는 disable합니다.
Unix에서 심볼릭 링크를 enable하면,
CREATE TABLE 구문의
INDEX DIRECTORY 또는 DATA DIRECTORY 옵션으로
MyISAM 인덱스 파일 또는 데이터 파일을 다른 디렉터리에 링크할 수 있습니다.
테이블을 삭제하거나 이름을 바꾸면,
심볼릭 링크가 가리키는 파일도 삭제되거나 이름이 바뀝니다.
Section 10.12.2.2, “Using Symbolic Links for MyISAM Tables on Unix”를 참조하십시오.
참고
심볼릭 링크 지원과 이를 제어하는
--symbolic-links 옵션은
deprecated되었습니다.
향후 MySQL 버전에서 제거될 수 있습니다.
또한 이 옵션은 기본적으로 비활성화되어 있습니다.
관련된
have_symlink 시스템 변수 역시
deprecated되었으며, 향후 MySQL 버전에서 제거될 수 있습니다.
이 옵션은 Windows에서는 의미가 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | `--sysdate-is-now[={OFF |
| Type | Boolean |
| Default Value | OFF |
SYSDATE()는 기본적으로
구문이 실행되기 시작한 시점이 아니라,
실행되는 시점의 시간을 반환합니다.
이는 NOW()의 동작과 다릅니다.
이 옵션은 SYSDATE()를
NOW()의 동의어가 되게 합니다.
binary logging 및 replication에 대한 영향에 대해서는
Section 14.7, “Date and Time Functions”의
SYSDATE() 설명과
Section 7.1.8, “Server System Variables”의
SET TIMESTAMP 설명을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --tc-heuristic-recover=name |
| Type | Enumeration |
| Default Value | OFF |
| Valid Values | OFF<br>COMMIT<br>ROLLBACK |
수동 휴리스틱 복구에 사용할 결정입니다.
--tc-heuristic-recover 옵션이 지정되면,
수동 휴리스틱 복구가 성공했는지 여부와 상관없이
server는 종료합니다.
two-phase commit을 지원하는 스토리지 엔진이 둘 이상인 시스템에서
ROLLBACK 옵션은 안전하지 않으며,
다음 에러와 함께 복구가 중단됩니다:
[ERROR] --tc-heuristic-recover rollback strategy is not safe on systems with more than one 2-phase-commit-capable storage engine. Aborting crash recovery.
| Property | Value |
|---|---|
| Command-Line Format | --transaction-isolation=name |
| System Variable | transaction_isolation |
| Scope | Global, Session |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | Enumeration |
| Default Value | REPEATABLE-READ |
| Valid Values | READ-UNCOMMITTED<br>READ-COMMITTED<br>REPEATABLE-READ<br>SERIALIZABLE |
기본 트랜잭션 격리 레벨을 설정합니다.
level 값은 다음 중 하나가 될 수 있습니다:
READ-UNCOMMITTED,
READ-COMMITTED,
REPEATABLE-READ,
SERIALIZABLE.
Section 15.3.7, “SET TRANSACTION Statement”를 참조하십시오.
기본 트랜잭션 격리 레벨은 런타임에서도
SET TRANSACTION 구문을 사용하거나
transaction_isolation 시스템 변수를
설정하여 설정할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | `--transaction-read-only[={OFF |
| System Variable | transaction_read_only |
| Scope | Global, Session |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | Boolean |
| Default Value | OFF |
기본 트랜잭션 접근 모드를 설정합니다. 기본적으로 읽기 전용 모드는 비활성화되어 있으므로 모드는 읽기/쓰기입니다.
기본 트랜잭션 접근 모드를 런타임에서 설정하려면,
SET TRANSACTION 구문을 사용하거나
transaction_read_only 시스템 변수를 설정하십시오.
Section 15.3.7, “SET TRANSACTION Statement”를 참조하십시오.
--tmpdir=dir_name,
-t dir_name| Property | Value |
|---|---|
| Command-Line Format | --tmpdir=dir_name |
| System Variable | tmpdir |
| Scope | Global |
| Dynamic | No |
SET_VAR Hint Applies | No |
| Type | Directory name |
임시 파일을 생성할 디렉터리의 경로입니다.
기본 /tmp 디렉터리가
임시 테이블을 저장하기에 너무 작은 파티션에 있는 경우 유용할 수 있습니다.
이 옵션은 여러 경로를 허용하며, 이들은 라운드 로빈 방식으로 사용됩니다.
Unix에서는 콜론(:), Windows에서는 세미콜론(;) 문자로 경로를 구분해야 합니다.
--tmpdir는
메모리 기반 파일 시스템의 디렉터리 또는
server 호스트가 재시작될 때 정리되는 디렉터리와 같이
비영구적인 위치가 될 수 있습니다.
MySQL server가 replica로 동작하고 있으며,
--tmpdir에
비영구적인 위치를 사용하는 경우,
replica_load_tmpdir 시스템 변수를 사용하여
replica에 대해 다른 임시 디렉터리를 설정하는 것을 고려하십시오.
replica에서 LOAD DATA 구문을 복제하는 데 사용되는
임시 파일은 이 디렉터리에 저장되므로,
영구적인 위치를 사용하면
머신 재시작 후에도 파일이 유지되어
복제가 계속될 수 있습니다.
(다만, 임시 파일이 제거된 경우에도
재시작 후 복제가 계속될 수 있게 되었습니다.)
임시 파일의 저장 위치에 대한 자세한 내용은 Section B.3.3.5, “Where MySQL Stores Temporary Files”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --upgrade=value |
| Type | Enumeration |
| Default Value | AUTO |
| Valid Values | AUTO<br>NONE<br>MINIMAL<br>FORCE |
이 옵션은 server가 시작 시 자동 업그레이드를 수행할지 여부, 그리고 수행한다면 어떻게 수행할지를 제어합니다. 자동 업그레이드는 두 단계로 구성됩니다:
Step 1: 데이터 딕셔너리 업그레이드.
이 단계는 다음을 업그레이드합니다:
mysql 스키마의 데이터 딕셔너리 테이블.
실제 데이터 딕셔너리 버전이 현재 기대 버전보다 낮으면,
server는 데이터 딕셔너리를 업그레이드합니다.
업그레이드할 수 없거나 업그레이드가 차단되면,
server는 실행될 수 없습니다.
Performance Schema 및
INFORMATION_SCHEMA.
Step 2: server 업그레이드.
이 단계는 다른 모든 업그레이드 작업으로 구성됩니다. 기존 설치 데이터의 MySQL 버전이 server가 기대하는 버전보다 낮으면, 업그레이드가 필요합니다:
mysql 스키마의 시스템 테이블
(나머지 non-data dictionary 테이블).
sys 스키마.
사용자 스키마.
업그레이드 step 1 및 2에 대한 자세한 내용은 Section 3.4, “What the MySQL Upgrade Process Upgrades”를 참조하십시오.
허용되는 --upgrade 옵션 값은 다음과 같습니다:
AUTO
server는 out of date로 판단되는 모든 것을 자동으로 업그레이드합니다
(step 1 및 2).
--upgrade가 명시적으로 지정되지 않은 경우
기본 동작입니다.
NONE
server는 시작 과정에서 어떠한 자동 업그레이드도 수행하지 않습니다 (step 1 및 2를 모두 건너뜁니다). 이 옵션 값은 데이터 딕셔너리 업그레이드를 방지하므로, 데이터 딕셔너리가 out of date로 판정되면 server는 다음과 같은 에러와 함께 종료합니다:
[ERROR] [MY-013381] [Server] Server shutting down because upgrade is required, yet prohibited by the command line option '--upgrade=NONE'. [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
MINIMAL
필요하다면 데이터 딕셔너리, Performance Schema,
INFORMATION_SCHEMA를 업그레이드합니다(step 1).
이 옵션으로 업그레이드한 후에는,
복제 내부가 의존하는 시스템 테이블이 업데이트되지 않기 때문에
Group Replication을 시작할 수 없습니다.
다른 영역에서도 기능이 축소된 것이 나타날 수 있습니다.
FORCE
필요하다면 데이터 딕셔너리, Performance Schema,
INFORMATION_SCHEMA를 업그레이드합니다(step 1).
또한 server는 다른 모든 것에 대해 업그레이드를 강제합니다(step 2).
server가 모든 스키마의 모든 오브젝트를 검사하므로
이 옵션을 사용하면 시작 시간이 길어질 수 있습니다.
FORCE는 server가 업그레이드가 필요하지 않다고 판단하더라도
step 2 작업을 강제로 수행하도록 할 때 유용합니다.
예를 들어 시스템 테이블이 손실되었거나 손상되었다고 의심되는 경우
강제 수리를 위해 사용할 수 있습니다.
다음 테이블은 각 옵션 값에 대해 server가 수행하는 작업을 요약합니다.
| Option Value | Server Performs Step 1? | Server Performs Step 2? |
|---|---|---|
AUTO | If necessary | If necessary |
NONE | No | No |
MINIMAL | If necessary | No |
FORCE | If necessary | Yes |
--user={user_name|user_id},
-u {user_name|user_id}| Property | Value |
|---|---|
| Command-Line Format | --user=name |
| Type | String |
mysqld server를
이름이 _user_name_이거나
숫자 사용자 ID가 _user_id_인 사용자로 실행합니다.
(여기서 “user”는 MySQL grant 테이블에 나열된 MySQL 사용자가 아니라
시스템 로그인 계정을 의미합니다.)
이 옵션은 root로
mysqld를 시작할 때
_필수_입니다.
server는 시작 시퀀스 동안 사용자 ID를 변경하여
root가 아니라 해당 사용자로 실행되도록 합니다.
Section 8.1.1, “Security Guidelines”를 참조하십시오.
사용자가 my.cnf 파일에
--user=root 옵션을 추가해
server가 root로 실행되도록 만드는
잠재적인 보안 구멍을 방지하기 위해,
mysqld는
처음 지정된 --user 옵션만 사용하고,
여러 개의 --user 옵션이 있는 경우
경고를 출력합니다.
/etc/my.cnf 및 $MYSQL_HOME/my.cnf의 옵션은
커맨드 라인 옵션보다 먼저 처리되므로,
/etc/my.cnf에 --user 옵션을
root 이외의 값과 함께 두는 것이 권장됩니다.
/etc/my.cnf의 옵션은 다른 어떤
--user 옵션보다 먼저 발견되므로,
server가 root가 아닌 사용자로 실행되도록 보장하고,
다른 --user 옵션이 발견되면
경고가 발생하게 합니다.
| Property | Value |
|---|---|
| Command-Line Format | `--validate-config[={OFF |
| Type | Boolean |
| Default Value | OFF |
server 시작 설정을 검증합니다.
에러가 발견되지 않으면 server는 exit code 0으로 종료합니다.
에러가 발견되면 server는 진단 메시지를 표시하고
exit code 1로 종료합니다.
log_error_verbosity 값에 따라
경고 및 정보 메시지도 표시될 수 있지만,
즉각적인 검증 종료 또는 exit code 1을 발생시키지는 않습니다.
자세한 내용은
Section 7.1.3, “Server Configuration Validation”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--validate-user-plugins[={OFF |
| Type | Boolean |
| Default Value | ON |
이 옵션이 활성화된 경우(기본값), server는 각 사용자 계정을 검사하여 계정을 사용할 수 없게 만드는 조건이 있는 경우 경고를 출력합니다:
계정이 로드되지 않은 인증 플러그인을 요구하는 경우.
계정이 sha256_password(deprecated) 또는
caching_sha2_password 인증 플러그인을 요구하지만,
server가 해당 플러그인이 요구하는 SSL 또는 RSA 중
어느 것도 enable하지 않고 시작된 경우.
--validate-user-plugins를 활성화하면
server 초기화와
FLUSH PRIVILEGES가 느려집니다.
추가 검사가 필요하지 않은 경우,
시작 시 이 옵션을 비활성화하여 성능 저하를 피할 수 있습니다.
--help 옵션과 함께 사용하여
자세한 도움말을 출력합니다.
--version, -V버전 정보를 표시하고 종료합니다.
7.1.6 Server Status Variable Reference
7.1.8 Server System Variables