MySQL import nohup 보안 주의

MySQL 데이터를 import 할 때 사용하는 명령어

1
sudo mysql -uuser -p DB_NAME < MYSQL_DUMP.sql
cs


import 할 데이터 용량이 크다면 nohup 을 이용하자.

1
nohup sudo mysql -uuser -p DB_NAME < MYSQL_DUMP.sql
cs


하지만 에러 발생

1
2
3
4
5
6
user@dev:/home/user# nohup mysql -uuser -p DB_NAME < MYSQL_DUMP.sql > nohup.out
[111351
user@dev:/home/user# nohup: redirecting stderr to stdout
 
[1]+  Stopped                 nohup mysql -uuser -p DB_NAME < MYSQL_DUMP.sql > nohup.out
user@dev:/home/user#
cs


nohup 으로 실행하면 터미널과 연결이 끊어져서 비밀번호를 입력할 수 없기 때문이다. 명령어에 비밀번호를 넣어주자. 

1
user@dev:/home/user# nohup mysql -uuser -pPASSWORD DB_NAME < MYSQL_DUMP.sql > nohup.out
cs


잘 실행된다. 

1
2
3
4
5
6
7
user@dev:~$ nohup sudo mysql -uuser -pPASSWORD DB_NAME < MYSQL_DUMP.sql > nohup.out &
[112596
user@dev:~$ nohup: redirecting stderr to stdout
 
user@dev:~$
[1]+  Done                    nohup sudo mysql -uuser -pPASSWORD! DB_NAME < MYSQL_DUMP.sql > nohup.out
user@dev:~$
cs


nohup.out 을 보자. 명령어에 비밀번호를 넣으면 안전하지 않다는 메시지가 있다. 왜? 

1
mysql: [Warning] Using a password on the command line interface can be insecure.
cs


프로세스를 조회해 보자. 비밀번호가 노출된다. 웁스.

1
2
3
4
5
6
user@dev:~$ ps -ef | grep mysql
mysql      12535       1 95 10:21 ?        00:14:39 /usr/sbin/mysqld
root       12614   10891  0 10:25 pts/3    00:00:00 sudo mysql -uuser -pPASSWORD DB_NAME
root       12615   12614  2 10:25 pts/3    00:00:15 mysql -uuser -px xxxxxxxx DB_NAME
user        12662   10890  0 10:37 pts/1    00:00:00 grep --color=auto mysql
user@dev:~$
cs


OK, 여기까지. 안전한 방법은 다음 기회로.


댓글 쓰기

0 댓글