4.6.6 mysql_config_editor - MySQL 구성 유틸리티
mysql_config_editor 유틸리티 (MySQL 5.6.6에서 사용 가능)을 사용하면 .mylogin.cnf
라는 암호화 된 로그인 파일에 인증 정보를 저장할 수 있습니다. 파일의 위치는 Windows에서는 %APPDATA%\MySQL
디렉토리 비 Windows 시스템에서는 현재 사용자의 홈 디렉토리입니다. 이 파일은 MySQL Server에 연결하기위한 인증 정보를 취득하기 위해 MySQL 클라이언트 프로그램에 의해 나중에 읽을 수 있습니다.
다른 파일 이름을 지정하려면 MYSQL_TEST_LOGIN_FILE
환경 변수를 설정합니다. 이 변수는 mysql-test-run.pl 테스트 유틸리티를 사용하지만 mysql_config_editor
및 mysql, mysqladmin 등의 MySQL 클라이언트에 의해 인식됩니다.
mysql_config_editor는 .mylogin.cnf
파일을 암호화 할 평문으로 읽을 수 없으며, 클라이언트 프로그램에 의해 해독 된 경우, 그 내용은 메모리 내에서만 사용됩니다. 이렇게하면 암호를 평문이 아닌 형식의 파일로 저장하여 명령 행 또는 환경 변수에 노출 될 필요도 전혀없이 나중에 사용할 수 있습니다. mysql_config_editor는 사용자가 파일의 내용을 표시 할 수 있도록 print
명령을 제공하지만,이 경우에도 암호 값은 마스크되므로 다른 사용자가 볼 수있는 방법으로는 결코 나타나지 않습니다.
mysql_config_editor가 사용하는 암호화는 암호가 .mylogin.cnf
에 평문으로 나타나는 것을 방지 암호가 실수로 노출되는 것을 방지 보안 수단을 제공합니다. 예를 들어, 일반 암호화되지 않은 my.cnf
옵션 파일을 화면에 표시하면 거기에 포함 된 암호는 누군가 볼 수 있습니다. .mylogin.cnf
에서는 그렇지 않습니다. 그러나 사용되는 암호화는 강력한 공격자를 저지하는 것은 아니라 해독 될 수 없다고는 생각하지 않도록하십시오. 시스템에서 귀하의 파일에 액세스하기 위해 시스템 관리자 권한을 획득 할 수있는 사용자라면 약간의 작업에서 .mylogin.cnf
파일을 해독 할 수 있습니다.
로그인 파일은 현재 사용자가 읽기 및 쓰기 권한이 다른 사용자는 액세스 할 수 있어야합니다. 그렇지 않으면 mysql_config_editor 그것을 무시하고 파일은 클라이언트 프로그램에서도 사용되지 않습니다. Windows에서는 이러한 제한이 적용되지 않습니다. 대신 사용자는 %APPDATA%\MySQL
디렉토리에 액세스 할 수 있어야합니다.
암호화되지 않은 형식의 .mylogin.cnf
로그인 파일은 다른 옵션 파일과 마찬가지로 옵션 그룹으로 구성됩니다. .mylogin.cnf
의 옵션 그룹은 "로그인 경로"라고, host
, user
및 password
라는 제한된 옵션 집합 만 허용하는 그룹입니다. 로그인 경로는 서버 호스트 및 서버에서 인증을위한 인증 정보를 나타내는 값의 집합이라고 생각합니다. 예를 나타냅니다.
[myloginpath] user = myname password = mypass host = 127.0.0.1
서버에 연결하는 클라이언트 프로그램을 시작하면 다른 옵션 파일과 함께 .mylogin.cnf
가 사용됩니다. 우선 순위는 다른 옵션 파일보다 높지만 클라이언트의 명령 행에서 명시 적으로 지정된 옵션보다 낮습니다. 옵션 파일이 사용되는 순서의 자세한 내용은 섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.
mysql_config_editor
은 다음과 같이 시작합니다.
shell> mysql_config_editor [ program_options ] command [ command_options ]
program_options
일반적인 mysql_config_editor 옵션으로 구성됩니다. command
는 실행할 명령을 보여 command_options
명령이 필요로하는 추가 옵션을 제공합니다.
명령은 .mylogin.cnf
Login 파일에 대해 수행 할 작업을 나타냅니다. 예를 들어, set
로그인 경로를 파일로 내보내기, remove
로그인 경로를 제거하고 print
로그인 경로의 내용을 표시합니다. 옵션이 지정된 경우 로그인 경로 및 로그인 경로에서 사용하는 값과 같은 명령에 대한 정보를 제공합니다.
프로그램 인수 집합에서 명령 이름의 위치는 중요합니다. 예를 들어, 다음 명령 행은 같은 인수를가집니다 만, 결과는 다릅니다.
mysql_config_editor --help set mysql_config_editor set --help
첫 번째 명령 행은 일반 mysql_config_editor 도움말을 표시하고 set
명령은 무시됩니다. 두 번째 명령 행은 set
명령의 도움말을 표시합니다.
로컬 MySQL 서버 및 호스트 remote.example.com
에 연결하기 위해 local
및 remote
라는 두 개의 로그인 경로를 설정한다고합니다. 로컬 서버에 localuser
및 localpass
는 사용자 이름과 암호를 인증하고 원격 서버에 remoteuser
및 remotepass
는 사용자 이름과 암호로 인증을 수행합니다. .mylogin.cnf
파일에 로그인 경로를 설정하려면 다음 set
명령을 사용합니다. 명령은 한 줄에 하나씩 입력하고 메시지가 나타나면 적절한 암호를 입력합니다.
shell>mysql_config_editor set --login-path=client --host=localhost --user=localuser --password
Enter password:enter password "localpass" here
shell>mysql_config_editor set --login-path=remote --host=remote.example.com --user=remoteuser --password
Enter password:enter password "remotepass" here
mysql_config_editor이 .mylogin.cnf
파일로 내보낼 내용을 표시하려면 print
명령을 사용합니다.
shell> mysql_config_editor print --all
[local]
user = localuser
password = *****
host = localhost
[remote]
user = remoteuser
password = *****
host = remote.example.com
print
명령은 각 로그인 경로를 행 집합으로 표시합니다. 각 세트는 처음에 그룹 머리글 (대괄호에 로그인 경로 이름을 나타냅니다)가 로그인 경로 옵션 값이 그 뒤를합니다. 암호 값은 마스크 된 일반 텍스트로 표시되지 않습니다.
앞의 예제에 표시된대로, .mylogin.cnf
파일에는 여러 로그인 경로를 포함 할 수 있습니다. 그러면 mysql_config_editor에서 다른 MySQL 서버에 연결하기 위해 여러 '인물'을 설정하는 것이 쉬워집니다. 이들은 나중에 모든 클라이언트 프로그램을 시작하면 --login-path
옵션을 사용하여 이름으로 선택할 수 있습니다. 예를 들어, 로컬 서버에 연결하려면 다음 명령을 사용합니다.
shell> mysql --login-path=local
원격 서버에 연결하려면 다음 명령을 사용합니다.
shell> mysql --login-path=remote
set
명령을 mysql_config_editor로 사용하여 로그인 경로를 만들 경우 가능한 세 가지 옵션 값 (호스트 이름, 사용자 이름 및 암호)을 모두 지정할 필요는 없습니다. 지정된 값만 경로에 기록됩니다. 누락 된 값이 나중에 필요할 경우에는 클라이언트 경로를 시작하고 MySQL 서버에 연결할 때, 옵션 파일 또는 명령 행에서 지정할 수 있습니다. 또한 명령 행에서 지정된 옵션은 .mylogin.cnf
파일을 포함한 옵션 파일의 옵션을 재정의합니다. 예를 들어, remote
로그인 경로의 인증 정보가 호스트 remote2.example.com
에도 적용될 호스트 서버에 다음과 같이 연결할 수 있습니다.
shell> mysql --login-path=remote --host=remote2.example.com
.mylogin.cnf
파일이 존재하는 경우 --no-defaults
옵션이 사용 된 경우에도 반드시 읽습니다. 이는 --no-defaults
가 존재하는 경우에도 명령 행보다 안전한 방법으로 암호를 지정할 수 있습니다.
mysql_config_editor 명령
이 섹션에서는 허용되는 mysql_config_editor 명령 및 명령 고유의 의미를 가지는 옵션의 해석에 대해 설명합니다. 또한 mysql_config_editor은 mysql_config_editor 실행 중에 더 많은 정보를 생성하기위한 --verbose
처럼 모든 명령에 사용할 수있는 다른 옵션도 가지고 있습니다. 이 옵션은 작업이 기대하는 효과를 내지 않을 경우 문제를 진단하는 데 도움이됩니다. 지원되는 옵션 목록은 mysql_config_editor 옵션 을 참조하십시오.
mysql_config_editor는 다음 명령을 지원합니다.
help
도움말 메시지를 표시하고 종료합니다.
print [
options
].mylogin.cnf
의 내용을 암호화되지 않은 형식으로 출력합니다. 암호는*****
로 표시됩니다.print
명령은 다음 옵션을 취합니다.--all
모든 로그인 경로를 출력합니다.
--login-path=
name
지명 된 로그인 경로를 출력합니다.
로그인 경로가 지정되지 않은 경우 기본 경로 이름은
client
입니다.--all
및--login-path
가 모두 지정된 경우--all
가 우선됩니다.remove [
options
]로그인 경로를
.mylogin.cnf
파일에서 제거합니다.remove
명령은 다음 옵션을 취합니다.--host
호스트 이름을 로그인 경로에서 제거합니다.
--login-path=
name
삭제하기 로그인 경로. 이 옵션이 지정되지 않은 경우 기본 경로 이름은
client
입니다.--password
비밀번호를 로그인 경로에서 제거합니다.
--port
TCP / IP 포트 번호를 로그인 경로에서 제거합니다.
--socket
Unix 소켓 파일 이름을 로그인 경로에서 제거합니다.
--user
사용자 이름을 로그인 경로에서 제거합니다.
remove
명령에 대한--host
,--user
및--password
옵션은 MySQL 5.6.9에서 지원됩니다.remove
명령에 대한--port
및--socket
옵션은 MySQL 5.6.11에서 지원됩니다.remove
명령은--host
,--password
,--port
,--socket
및--user
의 각 옵션에 지정된 값만 로그인 경로에서 제거합니다. 이들이 모두 지정되지 않은 경우remove
로그인 전체 경로를 제거합니다. 예를 들어 다음 명령은client
로그인 전체 경로가 아니라client
로그인 경로에서user
값만을 삭제합니다.mysql_config_editor remove --login-path = client --user
reset
.mylogin.cnf
파일의 내용을 비 웁니다. 파일이 존재하지 않으면 생성됩니다.set [
options
]로그인 경로를
.mylogin.cnf
파일로 내 보냅니다.set
명령은 다음 옵션을 취합니다.--host=
host_name
로그인 경로로 내보낼 호스트 이름입니다.
--login-path=
name
만들 로그인 경로. 이 옵션이 지정되지 않은 경우 기본 경로 이름은
client
입니다.--password
로그인 경로로 내보내는 암호를 요구합니다.
--port=
port_num
로그인 경로로 내보낼 TCP / IP 포트 번호.
--socket=
file_name
로그인 경로로 내보낼 Unix 소켓 파일 이름.
--user=
user_name
로그인 경로로 내보낼 사용자 이름입니다.
set
명령에 대한--port
및--socket
옵션은 MySQL 5.6.11에서 지원됩니다.set
명령은--host
,--password
,--port
,--socket
및--user
의 각 옵션에 지정된 값만 로그인 경로로 내 보냅니다. 이러한 옵션이 모두 지정되지 않는 경우는 mysql_config_editor 로그인 경로를 빈 그룹으로 내 보냅니다.빈 암호를 지정하려면
set
명령을--password
옵션과 함께 사용 후 암호 프롬프트에서 Enter를 누릅니다. 그 결과.mylogin.cnf
에 내보내는 로그인 경로는 다음과 같은 행을 포함합니다.password =
.mylogin.cnf
에 로그인 경로가 이미 존재하는 경우,set
명령은 그것을 대체합니다. 이것이 사용자가 의도 한 것임을 확인하기 위해 mysql_config_editor는 경고를 출력하여 확인을 요청합니다. 경고 및 프롬프트를 표시하지 않으려면--skip-warn
옵션을 사용합니다.
mysql_config_editor 옵션
mysql_config_editor는 다음 옵션을 지원합니다.
표 4.13 mysql_config_editor
옵션
형식 | 설명 | 도입 |
---|---|---|
--all | 모든 로그인 경로를 출력 | |
--debug | 디버깅 로그를 작성한다 | |
--help | 도움말 메시지를 표시하고 종료 | |
--host | 로그인 파일을 내보낼 호스트 | |
--login-path | 로그인 경로명 | |
--password | 로그인 파일로 내보낼 암호를 요구 | |
--port | 로그인 파일로 내보낼 TCP / IP 포트 번호 | 5.6.11 |
--socket | 로그인 파일로 내보낼 Unix 소켓 파일 이름 | 5.6.11 |
--user | 로그인 파일을 내보낼 사용자 이름 | |
--verbose | 중복 모드 | |
--version | 버전 정보를 출력하고 종료 | |
--warn | 로그인 경로 덮어 대해 경고하고 확인을 요구 |
--help
,-?
도움말 메시지를 표시하고 종료합니다.
set
또는remove
등의 명령 이름이 앞에있는 경우 그 명령에 대한 정보를 표시합니다.--all
print
명령에 로그인 파일의 모든 로그인 경로를 출력합니다.--debug[=
,debug_options
]-#
debug_options
디버그 로그를 기록합니다. 일반적인
debug_options
문자열은d:t:o,
입니다. 기본값은file_name
d:t:o
입니다.--host=
,host_name
-h
host_name
set
명령에 로그인 경로로 내보낼 호스트 이름입니다.remove
명령에 로그인 경로에서 호스트 이름을 삭제합니다.--login-path=
,name
-G
name
print
,remove
및set
명령에 대해.mylogin.cnf
로그인 파일에서 사용하는 로그인 경로.사용자가 MySQL 서버에 연결하는 데 사용하는 로그인 경로를 지정할 수 있도록 클라이언트 프로그램도
--login-path
옵션을 지원합니다. 클라이언트 프로그램은--login-path
지정하는 첫 번째 옵션이어야합니다. 이것은 mysql_config_editor에는 해당하지 않습니다. 섹션 4.2.7 "옵션 파일의 처리에 영향을주는 명령 행 옵션」 을 참조하십시오.--password
,-p
set
명령에 대해 mysql_config_editor가 암호를 요청하고 사용자가 입력 한 값을 로그인 경로로 내보낼 수 있습니다. mysql_config_editor가 시작 프롬프트를 표시 한 후 사용자는 암호를 입력하고 Enter를 누르도록하십시오. 다른 사용자가 비밀번호를 보는 것을 방지하기 위해 mysql_config_editor 에코하지 않습니다.이 옵션은 옵션 이름 다음에 암호 값을 지정할 수 없습니다. 즉 mysql_config_editor는 다른 사용자에게 보이는 수있는 명령 행에 암호를 입력하는 것은 결코 아닙니다. 이것은 다른 대부분의 MySQL 프로그램과는 다릅니다. 다른 프로그램에서는
--password=
또는pass_val
-p
으로 명령 행에서 암호를 지정할 수 있습니다. (단,이 방법은 보안이 아니라 피해야한다.)pass_val
remove
명령에 로그인 경로에서 암호를 제거합니다.--port=
,port_num
-P
port_num
set
명령에 로그인 경로로 내보낼 TCP / IP 포트 번호.remove
명령에 로그인 경로에서 포트 번호를 삭제합니다.--socket=
,file_name
-S
file_name
set
명령에 로그인 경로로 내보낼 Unix 소켓 파일 이름.remove
명령에 로그인 경로에서 소켓 파일을 삭제합니다.--user=
,user_name
-u
user_name
set
명령에 로그인 경로로 내보낼 사용자 이름입니다.remove
명령에 로그인 경로에서 사용자 이름을 삭제합니다.--verbose
,-v
중복 모드. 프로그램의 동작에 대해 더 많은 정보를 출력합니다.
--version
,-V
버전 정보를 출력하고 종료합니다.
--warn
,-w
set
명령에 대한 명령이 기존 로그인 경로를 무시하려고하는 경우 사용자에게 경고하고 확인을 요구합니다. 이 옵션은 기본적으로 활성화됩니다. 해제하려면--skip-warn
을 사용합니다.