강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

MySQL강좌4편:MYSQL 접속시 MYSQL계정과 계정패스워드 지정하여 자동접속하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

MySQL강좌4:MYSQL 접속시 MYSQL계정과 계정패스워드 지정하여 자동접속하기

 

일반적인 MYSQL접속방법은 리눅스 쉘상태에서 mysql클라이언트를 실행한 후에 “Enter password: ”라는 프롬프트가 나오면 패스워드를 입력한 후에 접속하였다.  이번에는 쉘상태에서 mysql클라이언트를 실행하는 명령행에서 MYSQL사용자명과 패스워드를 동시에 지정하여 바로 접속하는 방법을 알아보도록 하겠다. 뒤에서 설명할 MYSQL백업편에서도 설명하겠지만 이와 같은 방법은 MYSQL데이터를 백업하거나 쉘프로그램에서 MYSQL 사용을 자동화하기 위하여 주로 사용하는 방법이다.

 

사용형식 : mysql -u사용자명 -p’패스워드접속할데이터베이스명

 

위의 예에서는 “-u사용자명에서 사용자명은 영문자 -u뒤에 빈칸없이 붙여서 지정해야하며 패스워드 또한 영문자 -p뒤에 빈칸없이 ‘’으로 붙여야만 정상적으로 실행된다. 이점만 유념하면 별문제없이 자동접속할 수 있을 것이다.

 

아래의 예는 root계정으로 패스워드를 지정하여 mysql데이터베이스로 접속한 예이다. 설명하였듯이 root -u문자뒤에 가능한 빈칸없이 붙여서 입력하고(띄워도 됨) root의 패스워드인 11111111 또한 ‘’로 묶어서 -p문자뒤에 빈칸없이 붙여서 입력해야 한다.

 

[root@sulinux bin]#/usr/local/mysql/bin/mysql -u root -p'11111111' mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 8

Server version: 5.1.32 Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql>

mysql> exit

Bye

[root@sulinux bin]#

 

위의 예와 같이 MYSQL root사용자는 mysql이라는 데이터베이스로 자동접속하기 위하여 root라는 계정명과 11111111이라는 패스워드를 쉘상태에서 지정한 것이다.

 

이번에는 일반계정사용자의 예를 보겠다. 일반사용자도 마찬가지로 -u옵션뒤에 사용할 MYSQL계정명과 -p뒤에 ‘’로 둘러 쌓인 패스워드를 빈칸없이 붙여서 사용하면  별도의 패스워드 입력단계를 생략하고 바로 접속이 이루어진다.

 

아래의 예는 picasso라는 MYSQL계정사용자가 자기가 사용하는 picasso_db라는 데이터베이스로 자동접속한 예로서 패스워드를 직접 쉘상태에서 지정한 예이다.

 

[root@sulinux bin]#/usr/local/mysql/bin/mysql -u picasso -p'11111111' picasso_db

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 9

Server version: 5.1.32 Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql>

mysql> exit

Bye

[root@sulinux bin]#

 

이렇게 접속한 후에 ps명령어로 접속된 프로세스를 확인해보면 다음과 같다.

 

[root@sulinux ~]#ps -ef | grep mysql

root      3770  2552  0 06:29 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe

mysql     3860  3770  0 06:29 pts/0    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/data/sulinux.net.err --pid-file=/usr/local/mysql/data/sulinux.net.pid --socket=/tmp/mysql.sock --port=3306

root      3895  2552  0 06:40 pts/0    00:00:00/usr/local/mysql/bin/mysql -u picasso -px xxxxxx picasso_db

root      3933  3899  0 06:40 pts/1    00:00:00 grep --colour=auto mysql

[root@sulinux ~]#

 

즉 패스워드부분이 “x”문자로 처리되어있다. 이는 리눅스 서버와 MYSQL의 보안을 위한 것이며 서버관리자들은 이 부분의 내용을 정확하게 확인하기 바란다.

 

, 주의 할 것은 명령어 히스토리(history명령어 사용)에서는 사용한 명령어들이 모두 보이므로 주의해야 한다. 다음 예는 위의 명령어를 실행한 사용자의 history를 확인한 것으로서 “picasso”라는 문자열을 포함한 행들만을 출력한 것이다.

 

[root@sulinux bin]#history | grep picasso

1037  /usr/local/mysql/bin/mysql -u picasso -p picasso_db

  1039  /usr/local/mysql/bin/mysql -u picasso -p'11111111' picasso_db

  1041  /usr/local/mysql/bin/mysql -u picasso -p'11111111' picasso_db

  1043  history | grep picasso

[root@sulinux bin]#

 

보다시피 자신의 history에는 패스워드를 포함한 사용한 모든 내역들이 보이므로 주의해야할 부분이다.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,159 명
  • 현재 강좌수 :  36,520 개
  • 현재 접속자 :  263 명