MySQL 클라이언트 암호를 저장하거나 암호를 덜 인증하십시오


11

mysql 명령 줄 클라이언트를 사용하고 있으며 클라이언트를 시작할 때마다 암호를 제공하지 않아도됩니다. 내 옵션은 무엇입니까?


이전 답변 중 일부에 대한 답변을 수락하십시오. 답변 중 일부가 올바른 해결책 인 것 같습니다. 답변 왼쪽에있는 체크 표시를 클릭하십시오.
Shane Madden

답변:


15

.my.cnf홈 디렉토리에 다음과 같은 이름의 파일을 작성하십시오 . 파일 시스템 권한이 소유 사용자 만 읽을 수 있도록 설정되어 있는지 확인하십시오 (0600).

[client]
host     = localhost
user     = username.
password = thepassword
socket   = /var/run/mysqld/mysqld.sock
#database = mysql

당신은 또한 질문에 mysqldump 태그를 지정 했으므로이 질문을 봐야합니다.

루트 암호없이 cron 작업에서 mysqldump 사용

업데이트 (2016-06-29) mysql 5.6.6 이상을 실행 하는 경우 암호화 된 파일에 자격 증명저장할 수 있는 mysql_config_editor 도구를 찾아야 합니다. 이것을 언급 해 준 Giovanni 에게 감사드립니다 .


감사합니다. Thanku
여행

답변이 문제를 해결 한 경우 확인 표시를 클릭하여 승인해야합니다.
Zoredache

1
암호를 일반 텍스트로 저장하므로 보안 관점에서 권장하지 않습니다.
Giovanni

@Giovanni는 대답에 언급 한 mysql_config_editor이지만 5.6.6을 실행할 때까지는 유용하지 않습니다. 이전 버전의 배포판이 여전히 있습니다.
Zoredache

그러나 이것은 Windows에서 어떻게 이루어 집니까?
Wolfpack'08

9

mysql_config_editor유틸리티를 사용하여 라는 암호화 된 로그인 경로 파일에 인증 자격 증명을 저장할 수 있습니다 .mylogin.cnf.

새로운 자격 증명 세트를 생성하려면 다음을 실행하십시오.

mysql_config_editor set --host=db.host.org --user=dbuser --password

프롬프트가 표시되면 비밀번호를 입력하십시오.

인증 자격 증명이 기본 client로그인 경로에 저장됩니다.

다른 --login-path옵션 을 지정하여 여러 인증 자격 증명을 저장할 수 있습니다 .

mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password

기본적으로 mysql클라이언트 는 다른 옵션 파일에서 [client][mysql]그룹을 읽으므로 로그인 경로 파일에서도 읽습니다. --login-path옵션을 사용하면 클라이언트 프로그램은 로그인 경로 파일에서 명명 된 로그인 경로를 추가로 읽습니다. 다른 옵션 파일에서 읽은 옵션 그룹은 동일하게 유지됩니다. 이 명령을 고려하십시오.

mysql --login-path=db2

mysql클라이언트 읽기 [client][mysql]기타 옵션 파일에서, 그리고 [client], [mysql]그리고 [mypath]로그인 경로 파일에서.

구성 파일에 저장된 모든 정보를 인쇄하려면 다음을 실행하십시오.

mysql_config_editor print --all=true

이 유틸리티에 대한 자세한 정보는 "mysql_config_editor — MySQL 구성 유틸리티" 에서 찾을 수 있습니다 .


2

암호를 일반 텍스트로 표시하는 데 사용할 수 있으므로 .mylogin.cnf 가 안전 하다고 가정 해서는 안됩니다 my_print_defaults -s [use your login-path]. 이것이 바로 MariaDB가이 '불분명 한 보안'접근법을 지원하지 않는 이유입니다.


그렇다면 이 질문에 대한 답 무엇 입니까?
Pierre.Vriens

0

위에서 언급 한 방법과 직교하는 다른 방법이 있지만 다른 사람이 모니터를보고 있거나 기록을 저장하는 경우 보안 위험이있을 수 있습니다 .

그럼에도 불구하고 그것은 옵션이며, 프롬프트가 표시되지 않도록하고, 도커 이미지 및 기타에서 사용하는 옵션입니다.

mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.

프롬프트가 표시되지 않으면 원하는 경우 쉘에서 임시 별명을 설정할 수 있습니다.

주의해서 사용하십시오.

readline 5.1을 사용하는 debian-linux-gnu (x86_64) 용 mysql Ver 14.14 Distrib 5.5.61-38.13

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.