4.2.6 옵션 파일 사용
대부분의 MySQL 프로그램은 옵션 파일 (구성 파일이라는 것도 있습니다)에서 시작 옵션을 읽을 수 있습니다. 옵션 파일은 자주 사용되는 옵션을 지정하는 편리한 방법을 제공하여 프로그램을 실행할 때마다 명령 행에서 입력 할 필요가 없습니다. MySQL 서버는 MySQL에 의해 다수의 사전 구성된 옵션 파일 이 제공됩니다.
프로그램이 옵션 파일을 읽을 여부를 판단하려면 --help
옵션을 사용하여 프로그램을 호출합니다. (mysqld는 --verbose
및 --help
를 사용합니다.) 프로그램이 옵션 파일을 읽을 때 어떤 파일을 찾을 것인지, 그리고 어떤 옵션 그룹을 인식하는지이 도움말 메시지를 표시합니다.
로그인 경로 옵션을 포함 .mylogin.cnf
파일은 mysql_config_editor 유틸리티가 작성됩니다. 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오. "로그인 경로"는 host
, user
및 password
라는 제한된 옵션 집합 만 허용 옵션 그룹입니다. 클라이언트 프로그램은 .mylogin.cnf
에서 어느 로그인 경로를 읽을 것인지를 --login-path
옵션을 사용하여 지정합니다.
다른 파일 이름을 지정하려면 MYSQL_TEST_LOGIN_FILE
환경 변수를 설정합니다. 이 변수는 mysql-test-run.pl 테스트 유틸리티를 사용하지만 mysql_config_editor
및 mysql, mysqladmin 등의 MySQL 클라이언트에 의해 인식됩니다.
MySQL Cluster 프로그램에서 사용되는 옵션 파일은 섹션 18.3 "MySQL Cluster 구성" 에서 설명합니다.
Windows에서 MySQL 프로그램은 시작 옵션을 다음 파일에서 지정된 순서 (상위 항목이 먼저 사용됩니다)에서 읽습니다.
파일 이름 | 목적 |
---|---|
, | 전역 옵션 |
, | 전역 옵션 |
C:\my.ini , C:\my.cnf | 전역 옵션 |
, | 전역 옵션 |
defaults-extra-file | --defaults-extra-file= 에 지정된 파일 (있는 경우) |
| 로그인 경로 옵션 |
%PROGRAMDATA%
는 호스트의 모든 사용자 응용 프로그램 데이터를 포함하는 파일 시스템 디렉토리를 나타냅니다. 이 경로는 기본적으로 Microsoft Windows Vista 이상에서는 C:\ProgramData
, Microsoft Windows의 이전 버전에서는 C:\Documents and Settings\All Users\Application Data
입니다.
%WINDIR%
은 Windows 디렉터리 위치를 나타냅니다. 이것은 일반적으로 C:\WINDOWS
입니다. 다음 명령을 사용하여 WINDIR
환경 변수의 값으로부터 정확한 위치를 알아낼 수 있습니다.
C : \> echo %WINDIR%
INSTALLDIR
는 MySQL 설치 디렉토리를 나타냅니다. 이것은 일반적으로 MySQL 5.6이 설치 마법사 및 구성 마법사를 사용하여 설치 한 경우에는 C:\
입니다. 여기에서 PROGRAMDIR
\MySQL\MySQL 5.6 ServerPROGRAMDIR
프로그램 디렉토리 (영어 버전의 Windows에서는 보통 Program Files
)입니다. 섹션 2.3.3 "MySQL Installer를 사용하여 MySQL의 Microsoft Windows에 설치" 를 참조하십시오.
%APPDATA%
는 Windows 응용 프로그램 데이터 디렉토리의 값을 나타냅니다. 다음 명령을 사용하여 APPDATA
환경 변수의 값으로부터 정확한 위치를 확인할 수 있습니다.
C : \> echo %APPDATA%
Unix, Linux 및 OS X에서는 MySQL 프로그램은 시작 옵션을 다음 파일에서 지정된 순서 (상위 항목이 먼저 사용됩니다)에서 읽습니다.
파일 이름 | 목적 |
---|---|
/etc/my.cnf | 전역 옵션 |
/etc/mysql/my.cnf | 전역 옵션 |
| 전역 옵션 |
$MYSQL_HOME/my.cnf | 서버 고유의 옵션 |
defaults-extra-file | --defaults-extra-file= 에 지정된 파일 (있는 경우) |
~/.my.cnf | 사용자 고유의 옵션 |
~/.mylogin.cnf | 로그인 경로 옵션 |
~
현재 사용자의 홈 디렉토리 ( $HOME
값)을 나타냅니다.
SYSCONFDIR
은 MySQL이 빌드 된 때 SYSCONFDIR
옵션과 함께 CMake에 지정된 디렉토리를 나타냅니다. 기본적으로 이것은 컴파일 된 설치 디렉토리 아래의 etc
디렉토리입니다.
MYSQL_HOME
은 서버 관련 my.cnf
파일이 존재하는 디렉토리 경로를 포함한 환경 변수입니다. MYSQL_HOME
이 설정되지 않은 상태에서 mysqld_safe 프로그램을 사용하여 서버를 시작하면 mysqld_safe는 다음과 같이 MYSQL_HOME
을 설정하려고합니다.
BASEDIR
과DATADIR
이 각각 MySQL베이스 디렉토리와 데이터 디렉토리 경로 이름을 같이합니다.DATADIR
에는my.cnf
파일이 존재하고BASEDIR
에 존재하지 않는 경우, mysqld_safe는MYSQL_HOME
을DATADIR
에 세트합니다.그렇지 않은 경우는
MYSQL_HOME
이 설정되어 있지 않고,my.cnf
파일이DATADIR
에 존재하지 않는 경우, mysqld_safe는BASEDIR
에MYSQL_HOME
을 설정합니다.
MySQL 5.6에서는 DATADIR
을 my.cnf
의 장소로 사용하는 것은 비추천입니다.
일반적으로 DATADIR
은 바이너리 설치는 /usr/local/mysql/data
소스 설치는 /usr/local/var
입니다. 이것은 구성시에 지정된 데이터 디렉토리 위치이며, mysqld가 시작할 때 --datadir
옵션으로 지정되는 것은 아니라는 점에 유의하십시오. 실행시에 --datadir
를 사용해도 서버가 옵션 파일을 찾을 때 어떤 영향도 제공하지 않습니다. 이것은 서버가 옵션을 처리하기 전에 옵션 파일을 찾기 때문이다.
MySQL은 위의 순서대로 옵션 파일을 검색하고있는 것을 모두 읽습니다. 사용하고자하는 옵션 파일이 존재하지 않는 경우는 일반 텍스트 편집기로 작성합니다.
소정의 옵션이 여러 개인 경우 마지막 인스턴스가 우선됩니다. 한 가지 예외가 있습니다. mysqld에서 옵션 파일에 지정된 사용자가 명령 행에서 재정의되는 것을 방지하기 위해 안전 대책으로 --user
옵션의 첫 번째 인스턴스가 사용됩니다.
Unix 플랫폼에서는 MySQL은 누군가 쓸 구성 파일을 무시합니다. 이것은 보안을 위해 의도적 인 것입니다.
MySQL 프로그램을 실행할 때 명령 행에서 지정할 수있는 모든 긴 옵션은 옵션 파일에서 지정할 수 있습니다. 프로그램에 대해 사용 가능한 옵션 목록을 검색하려면 --help
옵션을 사용하여 프로그램을 실행합니다.
옵션 파일에 옵션을 지정하는 구문은 명령 행 구문과 동일합니다 ( 섹션 4.2.4 "명령 줄 옵션 사용" 을 참조하십시오). 그러나 옵션 파일에서는 처음 두 개의 대시는 옵션 이름에서 생략 한 줄에 하나의 옵션 만 지정합니다. 예를 들어, 명령 행에서 --quick
및 --host=localhost
는 옵션 파일에서 별도의 행에있는 quick
및 host=localhost
로 지정하도록하십시오. --loose-
형식의 옵션을 옵션 파일에서 지정하려면 opt_name
loose-
로 만듭니다. opt_name
옵션 파일의 빈 행은 무시됩니다. 비어 있지 않은 행은 다음 중 하나의 형식을 취할 수 있습니다.
#
,comment
;
comment
"
#
"또는";
"로 시작하는 행. "#
"을 사용하는 코멘트는 라인의 중간에서 시작할 수도 있습니다.[
group
]group
은 옵션을 설정하는 프로그램 또는 그룹의 이름입니다. 그룹 행의 뒤, 모든 옵션 설정 라인은 옵션 파일을 종료하거나 다른 그룹 행이 지정 될 때까지 이름을 지정한 그룹에 적용됩니다. 옵션 그룹 이름은 대소 문자를 구분하지 않습니다.opt_name
이것은 명령 행의
--
과 동일합니다.opt_name
opt_name
=value
이것은 명령 행의
--
와 동일합니다. 옵션 파일에서는 "opt_name
=value
=
"문자 주위에 공간을 넣을 수 있습니다. 이것은 명령 행에서 수 없습니다. 선택적으로 값을 작은 따옴표 또는 큰 따옴표로 묶을 수 있습니다. 이것은 값이 '#
'코멘트 문자를 포함한 경우에 유용합니다.
선행 및 후행 공백은 자동으로 옵션 이름과 값에서 제거됩니다.
이스케이프 시퀀스 " \b
"," \t
"," \n
"" \r
"," \\
"및" \s
"를 옵션 값으로 사용하여 백 스페이스, 탭, 줄 바꿈, 캐리지 리턴, 백 슬래시 및 공백 문자를 나타낼 수 있습니다. 옵션 파일에서 탈출 규칙 :
백 슬래시 유효한 이스케이프 시퀀스 문자가 계속되는 경우, 그 순서는 순서가 나타내는 문자로 변환됩니다. 예를 들어, "
\s
"는 공백으로 변환됩니다.백 슬래시 유효한 이스케이프 시퀀스 문자가 따르지 않으면 변경되지 않습니다. 예를 들어, '
\S
'는 그대로입니다.
위의 규칙은 백 슬래시 문자는 ' \\
'로 지정 있다는 것을 의미합니다. 또는 유효한 이스케이프 시퀀스 문자가 따라야 " \
"로 지정할 수 있습니다.
옵션 파일에서 이스케이프 시퀀스 규칙은 SQL 문에서 문자열 리터럴의 이스케이프 시퀀스 규칙과 약간 다릅니다. 후자의 경우는 " x
"가 유효한 이스케이프 시퀀스 문자가 아닌 경우" \
"는" x
\
"대신" x
x
"가됩니다. 섹션 9.1.1 "문자열 리터럴" 을 참조하십시오.
옵션 파일 값의 탈출 규칙은 " \
"을 경로 구분 기호로 사용하는 Windows 경로 이름에 특히 관련이 있습니다. Windows 경로 구분 문자는 이스케이프 시퀀스 문자가 지속되면 " \\
"라고 설명해야합니다. 그렇지 않은 경우는 " \\
"또는" \
"고 작성할 수 있습니다. 또는 Windows 경로 이름에 " /
"를 사용 할 수도" \
"으로 간주됩니다. 옵션 파일에서 기본 디렉토리 C:\Program Files\MySQL\MySQL Server 5.6
을 지정합니다. 이것은 여러 가지 방법으로 실행할 수 있습니다. 예 :
basedir = "C : \ Program Files \ MySQL \ MySQL Server 5.6" basedir = "C : \\ Program Files \\ MySQL \\ MySQL Server 5.6" basedir = "C : / Program Files / MySQL / MySQL Server 5.6" basedir = C : \\ Program \ sFiles \\ MySQL \\ MySQL \ sServer \ s5.6
옵션 그룹 이름이 프로그램 이름과 같은 경우 그룹의 옵션은 특히 그 프로그램에 적용됩니다. 예를 들어, [mysqld]
그룹과 [mysql]
그룹은 각각 mysqld 서버와 mysql 클라이언트 프로그램에 적용됩니다.
[client]
옵션 그룹은 모든 클라이언트 프로그램으로 읽을 수 있습니다 (그러나 mysqld는 읽을 수 없습니다). 따라서 모든 클라이언트에 적용되는 옵션을 지정할 수 있습니다. 예를 들어, [client]
서버에 연결하는 데 사용하는 암호를 지정하는 데 사용하는 데 최적의 그룹입니다. (단, 다른 사람에게 암호를 모르는 것처럼, 옵션 파일은 반드시 자신 만 읽고 쓸 수 없도록하십시오.) 사용하는 모든 클라이언트 프로그램이 [client]
그룹을 인식하지 않는 한 옵션에 두지 같이하십시오. 옵션을 이해하지 않는 프로그램을 실행하려고하면 해당 프로그램은 오류 메시지를 표시하고 종료합니다.
일반적인 글로벌 옵션 파일을 보여줍니다.
[client] port = 3306 socket = / tmp / mysql.sock [mysqld] port = 3306 socket = / tmp / mysql.sock key_buffer_size = 16M max_allowed_packet = 8M [mysqldump] quick
위의 옵션 파일은 key_buffer_size
변수와 max_allowed_packet
변수를 설정하는 행에
구문을 사용합니다. var_name
= value
일반적인 사용자 옵션 파일을 보여줍니다.
[client] # The following password will be sent to all standard MySQL clients password = "my_password" [mysql] no-auto-rehash connect_timeout = 2 [mysqlhotcopy] interactive-timeout
MySQL의 특정 릴리스 시리즈의 mysqld 서버 만 읽을시켜야 옵션 그룹을 작성하려면 [mysqld-5.5]
, [mysqld-5.6]
등의 이름의 그룹을 사용하여 실행할 수 있습니다. 다음 그룹은 --new
옵션이 5.6.x 버전 번호의 MySQL 서버에만 사용되어야임을 나타냅니다.
[mysqld-5.6] new
옵션 파일에서 !include
지시문을 사용하여 다른 옵션 파일을 포함하고 !includedir
를 사용하여 특정 디렉토리에 옵션 파일을 검색 할 수 있습니다. 예를 들어, /home/mydir/myopt.cnf
파일을 포함하려면 다음 지시문을 사용합니다.
! include /home/mydir/myopt.cnf
/home/mydir
디렉토리를 검색하고 그곳에서 찾은 옵션 파일을 읽으려면 다음 지시문을 사용합니다.
! includedir / home / mydir
디렉토리 옵션 파일을 읽을 순서는 보장되지 않습니다.
현재 Unix 운영 체제에서 !includedir
지시문을 사용하여 검색 및 포함 된 파일은 .cnf
로 끝나는 파일 이름을 가지고 있지 않으면 안됩니다. Windows에서는이 지시문은 .ini
또는 .cnf
확장자를 가진 파일을 검사합니다.
포함 된 옵션 파일의 내용은 다른 옵션 파일처럼 작성합니다. 즉 옵션의 그룹을 포함 각 전에 옵션이 적용되는 프로그램을 나타내는
행있게하십시오. [ group ]
포함 된 파일을 처리하는 동안 현재 프로그램이 검색 그룹의 옵션 만 사용됩니다. 다른 그룹은 무시됩니다. my.cnf
파일에 다음 행이 포함된다고합니다.
! include /home/mydir/myopt.cnf
또한 /home/mydir/myopt.cnf
은 다음과 같다합니다.
[mysqladmin] force [mysqld] key_buffer_size = 16M
my.cnf
가 mysqld에 의해 처리되는 경우 /home/mydir/myopt.cnf
의 [mysqld]
그룹 만 사용됩니다. 이 파일이 mysqladmin에 의해 처리되는 경우 [mysqladmin]
그룹 만 사용됩니다. 이 파일이 다른 프로그램에 의해 처리되는 경우 /home/mydir/myopt.cnf
옵션은 사용되지 않습니다.
!includedir
지시문은 동일하게 처리되지만 지명 된 디렉토리에있는 모든 옵션 파일을 읽을 점이 다릅니다.