Loading...
MySQL 9.5 Reference Manual 9.5의 6.6.7 mysql_config_editor — MySQL Configuration Utility의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
mysql_config_editor 유틸리티를 사용하면 .mylogin.cnf라는 이름의 로그인 경로 파일에 인증 자격 증명을 난독화된 형태로 저장할 수 있습니다. 이 파일의 위치는 Windows에서는 %APPDATA%\MySQL 디렉터리이고, 비-Windows 시스템에서는 현재 사용자의 홈 디렉터리입니다. 이 파일은 나중에 MySQL 클라이언트 프로그램이 MySQL 서버에 연결하기 위한 인증 자격 증명을 얻기 위해 읽을 수 있습니다.
.mylogin.cnf 로그인 경로 파일의 난독화되지 않은 형식은 다른 옵션 파일과 유사하게 옵션 그룹으로 구성됩니다. .mylogin.cnf의 각 옵션 그룹은 “로그인 경로”라고 하며, 이 그룹에는 host, user, password, port, socket 옵션만 허용됩니다. 로그인 경로 옵션 그룹을 어떤 MySQL 서버에 연결할지와 어떤 계정으로 인증할지를 지정하는 옵션 집합이라고 생각하면 됩니다. 다음은 난독화되지 않은 예입니다:
1[client] 2user = mydefaultname 3password = mydefaultpass 4host = 127.0.0.1 5[mypath] 6user = myothername 7password = myotherpass 8host = localhost
클라이언트 프로그램을 호출하여 서버에 연결하면, 클라이언트는 .mylogin.cnf를 다른 옵션 파일과 함께 사용합니다. 이 파일의 우선순위는 다른 옵션 파일보다 높지만, 클라이언트 커맨드 라인에서 명시적으로 지정한 옵션보다는 낮습니다. 옵션 파일이 사용되는 순서에 대한 정보는 Section 6.2.2.2, “Using Option Files”를 참조하십시오.
대체 로그인 경로 파일 이름을 지정하려면 MYSQL_TEST_LOGIN_FILE 환경 변수를 설정하십시오. 이 변수는 mysql_config_editor, 표준 MySQL 클라이언트(mysql, mysqladmin 등), 그리고 mysql-test-run.pl 테스트 유틸리티에서 인식됩니다.
프로그램은 로그인 경로 파일의 그룹을 다음과 같이 사용합니다:
mysql_config_editor는 --login-path=name 옵션을 사용하여 어떤 로그인 경로를 사용할지 명시적으로 지정하지 않으면 기본적으로 client 로그인 경로를 대상으로 동작합니다.
--login-path 옵션 없이, 클라이언트 프로그램은 다른 옵션 파일에서 읽는 것과 동일한 옵션 그룹을 로그인 경로 파일에서도 읽습니다. 다음 커맨드를 보십시오:
1mysql
기본적으로 mysql 클라이언트는 다른 옵션 파일에서 [client] 및 [mysql] 그룹을 읽으므로, 로그인 경로 파일에서도 이 그룹을 읽습니다.
--login-path 옵션이 있으면, 클라이언트 프로그램은 로그인 경로 파일에서 이름이 지정된 로그인 경로를 추가로 읽습니다. 다른 옵션 파일에서 읽는 옵션 그룹은 동일하게 유지됩니다. 다음 커맨드를 보십시오:1mysql --login-path=mypath
mysql 클라이언트는 다른 옵션 파일에서 [client] 및 [mysql]을 읽고, 로그인 경로 파일에서는 [client], [mysql], [mypath]를 읽습니다.
--no-defaults 옵션이 사용되더라도 --no-login-paths가 설정되지 않는 한 클라이언트 프로그램은 로그인 경로 파일을 읽습니다. 이로 인해, --no-defaults가 존재하더라도 커맨드 라인에 비해 더 안전한 방식으로 패스워드를 지정할 수 있습니다.mysql_config_editor는 .mylogin.cnf 파일을 난독화하여 클리어 텍스트 형태로 읽을 수 없게 만들고, 클라이언트 프로그램이 난독화를 해제한 내용은 메모리에서만 사용됩니다. 이렇게 하면, 패스워드를 비-클리어 텍스트 형식으로 파일에 저장하고 나중에 사용할 수 있지만, 커맨드 라인이나 환경 변수에 노출할 필요가 없습니다. mysql_config_editor는 로그인 경로 파일 내용을 표시하기 위한 print 커맨드를 제공하지만, 이 경우에도 패스워드 값은 마스킹되어 다른 사용자가 볼 수 있는 형태로 나타나지 않습니다.
mysql_config_editor가 사용하는 난독화는 .mylogin.cnf에 패스워드가 클리어 텍스트로 나타나는 것을 방지하고, 패스워드가 실수로 노출되는 것을 막는 일정 수준의 보안을 제공합니다. 예를 들어, 일반적인 난독화되지 않은 my.cnf 옵션 파일을 화면에 표시하면, 그 안의 패스워드는 누구나 볼 수 있습니다. .mylogin.cnf의 경우에는 그렇지 않지만, 사용되는 난독화는 의지를 가진 공격자를 막을 수 있을 정도는 아니므로, 이를 깨지지 않는 것으로 간주해서는 안 됩니다. 시스템 관리자 권한을 획득하여 사용자의 파일에 접근할 수 있는 사용자는 약간의 노력으로 .mylogin.cnf 파일의 난독화를 해제할 수 있습니다.
로그인 경로 파일은 현재 사용자에게는 읽기 및 쓰기가 가능하고, 다른 사용자에게는 접근할 수 없어야 합니다. 그렇지 않으면 mysql_config_editor는 이 파일을 무시하고, 클라이언트 프로그램도 이를 사용하지 않습니다.
mysql_config_editor는 다음과 같이 호출합니다:
1mysql_config_editor [program_options] command [command_options]
로그인 경로 파일이 존재하지 않으면, mysql_config_editor가 이를 생성합니다.
커맨드 인자는 다음과 같이 지정합니다:
program_options 는 일반적인 mysql_config_editor 옵션으로 구성됩니다.
command는 .mylogin.cnf 로그인 경로 파일에 대해 수행할 동작을 지정합니다. 예를 들어, set은 로그인 경로를 파일에 기록하고, remove는 로그인 경로를 제거하며, print는 로그인 경로 내용을 표시합니다.
command_options 는 커맨드에 따라 추가로 필요한 옵션(예: 로그인 경로 이름 및 로그인 경로에서 사용할 값)을 나타냅니다.
프로그램 인자 집합에서 커맨드 이름의 위치는 중요합니다. 예를 들어, 다음 커맨드 라인은 인자는 같지만 서로 다른 결과를 생성합니다:
1mysql_config_editor --help set 2mysql_config_editor set --help
첫 번째 커맨드 라인은 일반적인 mysql_config_editor 도움말 메시지를 표시하고 set 커맨드는 무시합니다. 두 번째 커맨드 라인은 set 커맨드에 대한 도움말 메시지를 표시합니다.
기본 커넥션 파라미터를 정의하는 client 로그인 경로와, 호스트 remote.example.com의 MySQL 서버에 연결하기 위한 remote라는 추가 로그인 경로를 설정하려고 한다고 가정합니다. 로그인 방식은 다음과 같습니다:
기본적으로 로컬 서버에 사용자 이름 localuser와 패스워드 localpass로 로그인
원격 서버에는 사용자 이름 remoteuser와 패스워드 remotepass로 로그인
.mylogin.cnf 파일에 로그인 경로를 설정하려면 다음 set 커맨드를 사용합니다. 각 커맨드를 한 줄에 입력하고, 프롬프트가 나타나면 적절한 패스워드를 입력하십시오:
1$> mysql_config_editor set --login-path=client \ 2 --host=localhost --user=localuser --password 3Enter password: enter password "localpass" here 4$> mysql_config_editor set --login-path=remote \ 5 --host=remote.example.com --user=remoteuser --password 6Enter password: enter password "remotepass" here
mysql_config_editor는 기본적으로 client 로그인 경로를 사용하므로, 첫 번째 커맨드에서 --login-path=client 옵션을 생략해도 결과는 동일합니다.
mysql_config_editor가 .mylogin.cnf 파일에 무엇을 기록하는지 확인하려면 print 커맨드를 사용하십시오:
1$> mysql_config_editor print --all 2[client] 3user = localuser 4password = ***** 5host = localhost 6[remote] 7user = remoteuser 8password = ***** 9host = remote.example.com
print 커맨드는 각 로그인 경로를, 대괄호 안에 로그인 경로 이름을 나타내는 그룹 헤더로 시작하는 행 집합으로 표시하고, 이어서 로그인 경로에 대한 옵션 값을 표시합니다. 패스워드 값은 마스킹되어 클리어 텍스트로 나타나지 않습니다.
--all을 사용하여 모든 로그인 경로를 표시하거나 --login-path=name을 사용하여 특정 로그인 경로를 표시하지 않으면, print 커맨드는 기본적으로 client 로그인 경로가 있을 경우 이를 표시합니다.
앞의 예에서 보듯이 로그인 경로 파일에는 여러 로그인 경로를 포함할 수 있습니다. 이런 방식으로, mysql_config_editor를 사용하면 서로 다른 MySQL 서버에 연결하거나, 동일한 서버에 서로 다른 계정으로 연결하기 위한 여러 “페르소나”를 손쉽게 설정할 수 있습니다. 나중에 클라이언트 프로그램을 호출할 때 --login-path 옵션으로 이름을 지정하여 이들 중 어느 것이든 선택할 수 있습니다. 예를 들어, 원격 서버에 연결하려면 다음 커맨드를 사용하십시오:
1mysql --login-path=remote
여기서 mysql은 다른 옵션 파일에서 [client] 및 [mysql] 옵션 그룹을 읽고, 로그인 경로 파일에서 [client], [mysql], [remote] 그룹을 읽습니다.
로컬 서버에 연결하려면 다음 커맨드를 사용하십시오:
1mysql --login-path=client
mysql은 기본적으로 client 및 mysql 로그인 경로를 읽으므로, 이 경우 --login-path 옵션은 아무런 추가 효과가 없습니다. 이 커맨드는 다음 커맨드와 동일합니다:
1mysql
로그인 경로 파일에서 읽은 옵션은 다른 옵션 파일에서 읽은 옵션보다 우선합니다. 로그인 경로 파일에서 나중에 나타나는 로그인 경로 그룹에서 읽은 옵션은 파일에서 먼저 나타나는 그룹에서 읽은 옵션보다 우선합니다.
mysql_config_editor는 로그인 경로를 생성한 순서대로 로그인 경로 파일에 추가하므로, 보다 일반적인 로그인 경로를 먼저 만들고, 보다 특화된 경로를 나중에 만들어야 합니다. 파일 내에서 로그인 경로의 위치를 변경해야 하는 경우, 해당 경로를 제거한 다음 다시 생성하여 파일 끝에 추가할 수 있습니다. 예를 들어, client 로그인 경로는 모든 클라이언트 프로그램에서 읽기 때문에 더 일반적인 경로이며, mysqldump 로그인 경로는 mysqldump에서만 읽기 때문에 더 특화된 경로입니다. 나중에 지정된 옵션이 먼저 지정된 옵션을 오버라이드하므로, 로그인 경로를 client, mysqldump 순서로 배치하면 mysqldump 전용 옵션이 client 옵션을 오버라이드할 수 있습니다.
mysql_config_editor에서 set 커맨드를 사용하여 로그인 경로를 생성할 때, 가능한 모든 옵션 값(호스트 이름, 사용자 이름, 패스워드, 포트, 소켓)을 지정할 필요는 없습니다. 지정된 값만 경로에 기록됩니다. 나중에 MySQL 서버에 연결하기 위해 필요한 누락된 값은 다른 옵션 파일이나 커맨드 라인에서 클라이언트 경로를 호출할 때 지정할 수 있습니다. 커맨드 라인에서 지정한 옵션은 로그인 경로 파일이나 다른 옵션 파일에 지정된 옵션보다 우선합니다. 예를 들어, remote 로그인 경로의 자격 증명이 호스트 remote2.example.com에도 적용되는 경우 다음과 같이 해당 호스트의 서버에 연결할 수 있습니다:
1mysql --login-path=remote --host=remote2.example.com
mysql_config_editor는 커맨드 라인에서 지정된 어떤 커맨드 앞에서도 사용할 수 있는 다음과 같은 일반 옵션을 지원합니다. 커맨드별 옵션 설명은 mysql_config_editor Commands and Command-Specific Options를 참조하십시오.
Table 6.19 mysql_config_editor General Options
| Option Name | Description |
|---|---|
| --debug | 디버깅 로그 쓰기 |
| --help | 도움말 메시지를 표시하고 종료 |
| --verbose | 자세한 모드 |
| --version | 버전 정보를 표시하고 종료 |
--help,-?| Property | Value |
|---|---|
| Command-Line Format | --help |
일반적인 도움말 메시지를 표시하고 종료합니다.
커맨드별 도움말 메시지를 보려면, command 에 help가 아닌 커맨드를 지정하여 다음과 같이 mysql_config_editor를 호출하십시오:
1mysql_config_editor command --help
--debug[=debug_options],-# debug_options| Property | Value |
|---|---|
| Command-Line Format | --debug[=debug_options] |
| Type | String |
| Default Value | d:t:o |
디버깅 로그를 기록합니다. 일반적인 debug_options 문자열은 d:t:o,file_name입니다. 기본값은 d:t:o,/tmp/mysql_config_editor.trace입니다.
이 옵션은 MySQL이 WITH_DEBUG를 사용하여 빌드된 경우에만 사용할 수 있습니다. Oracle에서 제공하는 MySQL 릴리스 바이너리는 이 옵션으로 빌드되지 않습니다.
--verbose,-v| Property | Value |
|---|---|
| Command-Line Format | --verbose |
자세한 모드입니다. 프로그램이 수행하는 작업에 대한 정보를 더 많이 출력합니다. 동작이 예상한 효과를 내지 못할 때 문제를 진단하는 데 유용할 수 있습니다.
--version,-V| Property | Value |
|---|---|
| Command-Line Format | --version |
버전 정보를 표시하고 종료합니다.
이 섹션에서는 허용되는 mysql_config_editor 커맨드와, 각 커맨드에 대해 커맨드 라인에서 커맨드 이름 다음에 허용되는 커맨드별 옵션을 설명합니다.
또한 mysql_config_editor는 어떤 커맨드 앞에서도 사용할 수 있는 일반 옵션을 지원합니다. 이러한 옵션에 대한 설명은 mysql_config_editor General Options를 참조하십시오.
mysql_config_editor는 다음 커맨드를 지원합니다:
help일반적인 도움말 메시지를 표시하고 종료합니다. 이 커맨드는 뒤따르는 옵션을 받지 않습니다.
커맨드별 도움말 메시지를 보려면, command 에 help가 아닌 커맨드를 지정하여 다음과 같이 mysql_config_editor를 호출하십시오:
1mysql_config_editor command --help
print [options]로그인 경로 파일 내용을 난독화되지 않은 형식으로 출력하되, 패스워드는 *****로 표시됩니다.
로그인 경로 이름이 지정되지 않은 경우 기본 로그인 경로 이름은 client입니다. --all과 --login-path가 모두 지정되면 --all이 우선합니다.
print 커맨드는 커맨드 이름 뒤에 다음 옵션을 허용합니다:
--help, -?
print 커맨드에 대한 도움말 메시지를 표시하고 종료합니다.
일반적인 도움말 메시지를 보려면 mysql_config_editor --help를 사용하십시오.
--all
로그인 경로 파일에 있는 모든 로그인 경로의 내용을 출력합니다.
--login-path=name,
-G name
지정된 로그인 경로의 내용을 출력합니다.
remove [options]
로그인 경로 파일에서 로그인 경로를 제거하거나, 로그인 경로에서 옵션을 제거하여 수정합니다.
이 커맨드는 --host, --password, --port, --socket, --user 옵션으로 지정된 옵션만 로그인 경로에서 제거합니다. 이 중 어떤 옵션도 지정되지 않으면, remove는 전체 로그인 경로를 제거합니다. 예를 들어, 다음 커맨드는 mypath 로그인 경로 전체가 아니라 mypath 로그인 경로에서 user 옵션만 제거합니다:
1mysql_config_editor remove --login-path=mypath --user
다음 커맨드는 전체 mypath 로그인 경로를 제거합니다:
1mysql_config_editor remove --login-path=mypath
remove 커맨드는 커맨드 이름 뒤에 다음 옵션을 허용합니다:
--help, -?
remove 커맨드에 대한 도움말 메시지를 표시하고 종료합니다.
일반적인 도움말 메시지를 보려면 mysql_config_editor --help를 사용하십시오.
--host, -h
로그인 경로에서 호스트 이름을 제거합니다.
--login-path=name,
-G name
제거하거나 수정할 로그인 경로입니다. 이 옵션이 지정되지 않으면 기본 로그인 경로 이름은 client입니다.
--password, -p
로그인 경로에서 패스워드를 제거합니다.
--port, -P
로그인 경로에서 TCP/IP 포트 번호를 제거합니다.
--socket, -S
로그인 경로에서 유닉스 소켓 파일 이름을 제거합니다.
--user, -u
로그인 경로에서 사용자 이름을 제거합니다.
--warn, -w
커맨드가 기본 로그인 경로(client)를 제거하려 하지만 --login-path=client가 지정되지 않은 경우, 경고를 표시하고 사용자에게 확인을 요청합니다. 이 옵션은 기본적으로 활성화되어 있으며, --skip-warn을 사용하여 비활성화할 수 있습니다.
reset [options]
로그인 경로 파일의 내용을 비웁니다.
reset 커맨드는 커맨드 이름 뒤에 다음 옵션을 허용합니다:
--help, -?
reset 커맨드에 대한 도움말 메시지를 표시하고 종료합니다.
일반적인 도움말 메시지를 보려면 mysql_config_editor --help를 사용하십시오.
set [options]
로그인 경로 파일에 로그인 경로를 기록합니다.
이 커맨드는 --host, --password, --port, --socket, --user 옵션으로 지정된 옵션만 로그인 경로에 기록합니다. 이러한 옵션이 전혀 지정되지 않으면, mysql_config_editor는 로그인 경로를 빈 그룹으로 기록합니다.
set 커맨드는 커맨드 이름 뒤에 다음 옵션을 허용합니다:
--help, -?
set 커맨드에 대한 도움말 메시지를 표시하고 종료합니다.
일반적인 도움말 메시지를 보려면 mysql_config_editor --help를 사용하십시오.
--host=host_name,
-h host_name
로그인 경로에 기록할 호스트 이름입니다.
--login-path=name,
-G name
생성할 로그인 경로입니다. 이 옵션이 지정되지 않으면 기본 로그인 경로 이름은 client입니다.
--password, -p
로그인 경로에 기록할 패스워드를 묻는 프롬프트를 표시합니다. mysql_config_editor가 프롬프트를 표시하면 패스워드를 입력하고 Enter 키를 누르십시오. 다른 사용자가 패스워드를 볼 수 없도록 mysql_config_editor는 이를 에코하지 않습니다.
빈 패스워드를 지정하려면, 패스워드 프롬프트에서 Enter 키만 누르십시오. 그러면 로그인 경로 파일에 기록되는 로그인 경로에는 다음과 같은 행이 포함됩니다:
1password =
--port=port_num,
-P port_num
로그인 경로에 기록할 TCP/IP 포트 번호입니다.
--socket=file_name,
-S file_name
로그인 경로에 기록할 유닉스 소켓 파일 이름입니다.
--user=user_name,
-u user_name
로그인 경로에 기록할 사용자 이름입니다.
--warn, -w
커맨드가 기존 로그인 경로를 덮어쓰려 할 경우 경고를 표시하고 사용자에게 확인을 요청합니다. 이 옵션은 기본적으로 활성화되어 있으며, --skip-warn을 사용하여 비활성화할 수 있습니다.
6.6.6 myisampack — Generate Compressed, Read-Only MyISAM Tables
6.6.8 mysql_migrate_keyring — Keyring Key Migration Utility