mysql 5.6 변경사항 중
커맨드라인 입력 부분에서 user, password가 노출되는 방식에 대해서 무조건 아래와 같은 경고를 출력한다.
$ /usr/local/mysql/bin/mysql -u root -p'password'
Warning: Using a password on the command line interface can be insecure.
경고만 출력되고 로그인은 된다.
그래서 mysql 5.6에 새로 생긴 mysql_config_editor 툴을 이용하여 로그인 파일을 생성해 놓고 해당 파일을 옵션으로 지정하여 로그인 할 수 있도록 되었다.
1. 파일 생성 하기
$ cd /root
$ /usr/local/mysql/bin/mysql_config_editor set --login-path=client --host=localhost --user=root --password --socket=/tmp/mysql.sock --port=3306
Enter password:
2. 파일 생성 확인
파일이 생성된 것을 볼 수 있다. 만약 --user 옵션에 다른 계정으로 지정을 하게되면 해당 유저의 권한으로 파일이 만들어 진다.
.mylogin.cnf 파일은 바이너리 파일이라서 내용을 볼 수 없다.
$ ls -la /root/.mylogin.cnf
-rw------- 1 root root 208 2014-04-11 14:46 .mylogin.cnf
3. 설정된 값을 확인
$ mysql_config_editor print --all
[client]
user = root
password = *****
host = localhost
socket = /tmp/mysql.sock
port = 3306
4. 생성된 파일정보로 mysql 로그인 하기
$ /usr/local/mysql/bin/mysql --login-path=/root
아래는 쉘에서 상태정보를 빼오는 작업이다.
$ /usr/local/mysql/bin/mysql --login-path=/root -e "show global status like '%Connections%';"
5. 로그인 정보 삭제하기
[client] 부분만 삭제하기
$ /usr/local/mysql/bin/mysql_config_editor remove --login-path=client
또는 모든 부분을 삭제 하려면 .mylogin.cnf 파일을 지워버리면 된다.
$ rm /root/.mylogin.cnf