답변:
.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 에게 감사드립니다 .
이 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 구성 유틸리티" 에서 찾을 수 있습니다 .
암호를 일반 텍스트로 표시하는 데 사용할 수 있으므로 .mylogin.cnf 가 안전 하다고 가정 해서는 안됩니다 my_print_defaults -s [use your login-path]
. 이것이 바로 MariaDB가이 '불분명 한 보안'접근법을 지원하지 않는 이유입니다.
위에서 언급 한 방법과 직교하는 다른 방법이 있지만 다른 사람이 모니터를보고 있거나 기록을 저장하는 경우 보안 위험이있을 수 있습니다 .
그럼에도 불구하고 그것은 옵션이며, 프롬프트가 표시되지 않도록하고, 도커 이미지 및 기타에서 사용하는 옵션입니다.
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