Summary

커맨드라인에 계정정보가 노출되면 아래와 같은 경고 발생
Warning: Using a password on the command line interface can be insecure.
커맨드 혹은 스크립트에서 계정 정보를 노출 하는건 정보가 유출 될 수 있으므로 로그인 파일을 생성한 후 사용하면 좋다.

mysql_config_editor?

MySQL 5.6.6 이상부터 사용가능한 Utility로 암호화된 로그인 파일인 .mylogin.cnf 에 합접적인 인증 정보를 저장하여 사용하는 Utility 이다.
mysql_config_editor 명령어는 .mylogin.cnf 파일을 암호화하여 내용을 읽을 수 없게 만들고, client 프로그램에서 해독된 정보만 메모리상에 존재하므로 패스워드 정보를 보호할 수 있다.

접속 정보 생성

자세한 설명을 생략하고 바로 접속 정보를 생성하는 방법을 알아보자
$ mysql_config_editor set --login-path=[name] --host=[hostname] --user=[username] --passwordport=[port]
위의 명령어를 입력하면 비밀번호를 입력한 후 myinfo.cnf 파일에 접속 정보가 등록된다. 
사용자 입력 항목들은 아래와 같다.
[name] : 접속시 사용할 이름
[hostname] : DB 호스트네임
[username] : DB 접속 아이디
[port] : 호스트의 포트번호

등록된 인증 정보 확인

$ mysql_config_editor print --all
[tez]
user = root
password = *****
host = localhost
port = 3306
print 옵션을 사용하여 등록정보를 출력하면 비밀번호 부분은 가려진채로 정보를 보여준다

등록한 인증 정보로 MySQL 사용 

#
$ mysql -u [username] -p
#
$ mysql --login-path=[name]
기존에 사용하던 -u [username] -p 대신 —login-path=[name]​ 옵션을 사용하여 mysql 관련 동작을 처리하면 된다
mysql, mysqldump 등 모두 이렇게 사용하면 된다.

등록된 인증 정보 삭제

등록되어있는 인증정보를 삭제하는 방법은 특정 정보만 삭제하는 방법과 전체 정보를 삭제하는 방법 두가지가 있다. 
#
$ mysql_config_editor removelogin-path=[name]
#
$ mysql_config_editor remove
반응형